PythonClassChy/python27Class/pythonLearningNotes/flora_0211_notes.txt

212 lines
7.2 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=================================
Notes
Author: Flora Chen
-_- -_- -_- -_- -_- -_- -_- -_-
=================================
******列表切片******
可以通过切片操作:获取数据中某一段数据
用法一: [起始位置:终止位置] 左闭右开
示例:
li = ['python', 66, 88.88, True, [11, 22, 33]]
print('[起始位置:终止位置] 左闭右开:', li[0:3])
# 输出结果:[起始位置:终止位置] 左闭右开: ['python', 66, 88.88]
# 使用反向的下标进行切片
print(li[-2:-1]) # 输出结果:[True]
# 正向和反向下标可以混用
print(li[1:-2]) # 输出结果:[66, 88.88]
用法二:[起始位置:终止位置:步长]
1. 步长为正数
示例:
li = ['python', 66, 88.88, True, [11, 22, 33]]
# 默认步长为1默认打印整个列表
print(li[::]) # 输出结果: ['python', 66, 88.88, True, [11, 22, 33]]
# 步长为2 2个元素中取第一个元素。所以是1 3 5
print(li[::2]) # 输出结果: ['python', 88.88, [11, 22, 33]]
# 步长为3 3个元素中取第一个元素。所以是1 4
print(li[::3]) # 输出结果: ['python', True]
# 步长为4 4个元素中取第一个元素。所以是1 5
print(li[::4]) # 输出结果: ['python', [11, 22, 33]]
2. 步长设置为负数
示例:
li = ['python', 66, 88.88, True, [11, 22, 33]]
# 步长为-1 是从后往前切片
print(li[::-1]) # 输出结果:[[11, 22, 33], True, 88.88, 66, 'python']
print(li[-1:-4:-1]) # 输出结果:[[11, 22, 33], True, 88.88]
******列表的常见操作方法******
列表list 用中括号[]来表示
列表可以保存多个数据,可以是任意类型的,每个元素之间用逗号隔开。
列表可以转换成布尔值空列表li = []的布尔值为False其他的布尔值都是True。
1. 内置函数len获取字符串列表元组字典集合的长度
示例:
li = ['python', 66, 88.88, True, [11, 22, 33]]
print(len(li)) # 输出结果5
2. 新增列表元素
append(): 在列表尾部追加元素
示例:
li = ['nancy', 'lily']
li.append('flora')
print(li) # 输出结果:['nancy', 'lily', 'flora']
insert(需要添加元素的下标位置, 需要添加的元素):指定位置添加元素
示例:
li = ['nancy', 'lily', 'flora']
li.insert(1, 'robot')
print(li) # 输出结果:['nancy', 'robot', 'lily', 'flora']
extend():一次性在列表尾部添加多个元素。注意:必须将需要添加的多个元素放在列表或者元组里面。
示例:
li = ['nancy', 'lily', 'flora']
li.extend(['jane', 'robot', 1, 2])
print(li) # 输出结果:['nancy', 'lily', 'flora', 'jane', 'robot', 1, 2]
3. 删除列表元素
remove(元素值):删除列表指定的元素
示例:
li = ['nancy', 'lily', 'flora']
li.remove('lily')
print(li) # 输出结果:['nancy', 'flora']
pop():通过下标删除指定的元素,默认删除最后一个
示例:
li = ['nancy', 'lily', 'flora', 'robot', 'jane']
li.pop()
print(li) # 输出结果:['nancy', 'lily', 'flora', 'robot']
li.pop(1)
print(li) # 输出结果:['nancy', 'flora', 'robot']
clear():清空列表(删除列表中的所有元素)
示例:
li = ['nancy', 'lily', 'flora', 'robot', 'jane']
li.clear()
print(li) # 输出结果:[]
4. 查看列表元素
通过下标取值
示例:
li = ['nancy', 'lily', 'flora', 'robot', 'jane']
# 通过下标取值查找元素
print(li[1]) # 输出结果lily
index():查找元素的下标值(找到第一个就返回,不会继续再查找;如果元素不存在会报错。)
示例:
li = ['nancy', 'lily', 'flora', 'robot', 'jane', 'flora', 'miya', 'apple']
index = li.index('flora')
print(index) # 输出结果2
# 在指定范围内查找元素的下标值,左闭右开
index = li.index('flora', 3, 6)
print(index) # 输出结果5
count():查找列表中某个元素的个数
示例:
li = ['nancy', 'lily', 'flora', 'robot', 'jane', 'flora', 'miya', 'apple']
print(li.count('flora')) # 输出结果2
5. 修改列表元素
通过下标赋值
示例:
li = ['nancy', 'lily', 'flora', 'robot', 'jane', 'flora', 'miya', 'apple']
li[1] = 11
print(li) # 输出结果:['nancy', 11, 'flora', 'robot', 'jane', 'flora', 'miya', 'apple']
6. 列表的其他方法
sort()对列表进行排序列表中全是数值类型如果列表中全是字符串是按照ASCII值进行排序的。
示例:
li = [11, 2, 353, 44, 88, 99, 123]
li.sort() # 默认从小到大排序, reverse默认为False
print(li) # 输出结果:[2, 11, 44, 88, 99, 123, 353]
li.sort(reverse=True) # 从大到小排序
print(li) # 输出结果:[353, 123, 99, 88, 44, 11, 2]
reverse():将列表反向,从末尾到起始排序
示例:
li = [11, 2, 353, 44, 88, 99, 123]
li.reverse() # 此操作相当于 li[::-1]
print(li) # 输出结果:[123, 99, 88, 44, 353, 2, 11]
copy():复制
示例:
li = [1, 2, 3, 4, 5, 6, 7]
# 变量赋值引用的是li中的数据
li2 = li
print(id(li)) # 输出结果2144668143360
print(id(li2)) # 输出结果2144668143360
# 在列表类li2中追加元素同样会作用到li中
li2.append(9)
print(li) # 输出结果:[1, 2, 3, 4, 5, 6, 7, 9]
print(li2) # 输出结果:[1, 2, 3, 4, 5, 6, 7, 9]
# 复制
li3 = li.copy()
print(id(li3)) # 输出结果2814574980480
print(li is li3) # 输出结果False
# 在列表类li3中追加元素不会影响li
li3.append(80)
print(li) # 输出结果:[1, 2, 3, 4, 5, 6, 7, 9]
print(li3) # 输出结果:[1, 2, 3, 4, 5, 6, 7, 9, 80]
******运算符补充******
身份运算符is, is not比较2个数据是否引用的是同一个对象比较id内存地址是否一致
示例:
li = [11, 2, 353, 44]
li2 = [11, 2, 353, 44]
li3 = li
# 内置函数id查看数据的内存地址
print(id(li)) # 输出结果1792807521984
print(id(li2)) # 输出结果1792807540928
print(id(li3)) # 输出结果1792807521984
print(li is li2) # 输出结果False
print(li is li3) # 输出结果True
print(li is not li3) # 输出结果False
扩展:
在python中 -5 到 256 之间的数据(小整数池),内存地址都是一样的。
# 在终端运行
a = -5
b = -5
print(id(a)) # 输出结果140706950989280
print(id(b)) # 输出结果140706950989280
a = -6
b = -6
print(id(a)) # 输出结果1739394026288
print(id(b)) # 输出结果1739394026352
成员运算符in, not in判断某个元素是否存在于列表中
示例:
li = [1, 2, 3, 4, 5, 6, 7]
zs = 1
ls = 8
# 判断zs, ls是否存在于列表中
print(zs in li) # 输出结果True
print(ls in li) # 输出结果False
# 判断zs, ls是否不存在于列表中
print(zs not in li) # 输出结果False
print(ls not in li) # 输出结果True
******元组******
元组tuple 用小括号来表示
元组的方法只有查询的方法。没有添加元素,修改元素,删除元素的方法。
1. 通过下标取值
index():查找元素的下标值(找到第一个就返回,不会继续再查找;如果元素不存在会报错。)
示例:
tup = (1, 2, 33, 4, 5, 6, 33, 44, 33, 7)
print(tup[2]) # 输出结果33
print(tup.index(33)) # 输出结果2
print(tup.index(33, 3, 8)) # 输出结果6
2. count():查找列表中某个元素的个数
示例:
tup = (1, 2, 33, 4, 5, 6, 33, 44, 33, 7)
print(tup.count(33)) # 输出结果3