212 lines
7.2 KiB
Plaintext
212 lines
7.2 KiB
Plaintext
=================================
|
||
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
|