增、删、改、查
【增】
# append() 结尾插入
作用 | 在列表的最后,添加一个新的元素 |
语法 | l.append(object) |
参数 | object,想要添加的元素 |
返回值 | None |
备注 | 会直接修改原列表 |
# append() 结尾插入
names = ['Bob','Tom']
names.append('Lisa')
print(names)
输出:
['Bob', 'Tom', 'Lisa']
# insert() 结尾插入
作用 | 在指定索引的前面,向列表中添加一个新的元素 |
语法 | l.insert(index,object) |
参数 | index:索引,到时会插入到这个索引之前;object:想要添加的元素 |
返回值 | None |
备注 | 会直接修改原列表 |
# insert() 指定某个位置插入
names = ['Bob','Tom']
names.insert(1,'Rose')
print(names)
输出:
['Bob', 'Rose', 'Tom']
# extend() 扩展另外一个可迭代序列
作用 | 往列表中,扩展另外一个可迭代序列 |
语法 | l.extend(iterable) |
参数 | iterable:可迭代序列(使用for循环可遍历的类型),如:字符串、列表、元组… |
返回值 | None |
备注 | 会直接修改原列表; 和append之间的区别:extend可以算是两个集合的拼接,append是一个元素,追加到一个集合中 |
# extend() 扩展另外一个可迭代序列
names = ['Bob','Tom']
names_1 = [1,2,3]
names.extend(names_1)
print(names)
输出:
['Bob', 'Tom', 1, 2, 3]
# 乘法运算、加法运算
备注: 加法运算,和extend之间的区别:加法运算,只能列表类型和列表类型相加
# 列表相乘
nums = [1,2]
print(nums * 3)
输出:
[1, 2, 1, 2, 1, 2]
# 列表相加
n1 = [1,2,3]
n2 = ['a','b']
print(n1 + n2)
输出:
[1, 2, 3, 'a', 'b']
【删】
del语句
作用 | 可以删除一个指定元素(对象) |
语法 | del 指定元素 |
备注 | 可以删除整个列表、删除一个变量,也可以删除某个元素 |
# del 删除某个元素
names = ['Bob','Tom','Rose']
del names[1] # 删除单个元素
print(names)
输出:
['Bob', 'Rose']
# del 删除整个列表
names = ['Bob','Tom','Rose']
del names # 删除整个列表
print(names)
输出:
NameError: name 'names' is not defined
pop()
作用 | 移除并返回列表中指定索引对应元素 |
语法 | l.pop(index=-1) |
参数 | index:需要被删除返回的元素索引,默认是-1,也就对应着列表最后一个元素 |
返回值 | 被删除的元素 |
备注 | 会直接修改原列表;注意索引越界 |
# pop() 默认删除最后一个元素并返回;也可指定删除某个元素
names = ['Bob','Tom','Rose']
print(names.pop()) # 删除并返回'Rose'
print(names)
print(names.pop(0)) # 指定删除索引为0的元素'Bob'
print(names)
输出:
Rose
['Bob', 'Tom']
Bob
['Tom']
remove()
作用 | 移除列表中指定元素 |
语法 | l.remove(object) |
参数 | object:需要被删除的元素 |
返回值 | None |
备注 | 会直接修改原列表;如果元素不存在,会报错;如果存在多个元素,则只会删除最左边一个 |
# remove() # 删掉指定元素
names = ['Bob','Tom','Rose']
names.remove('Tom')
print(names)
输出:
['Bob', 'Rose']
# remove() # 如果有多个相同元素,则删除第一个元素
names = ['Bob','Tom','Rose','Bob']
names.remove('Bob')
print(names)
输出:
['Tom','Rose','Bob']
# remove() # 如果要删除的元素不存在,会报错
names = ['Bob','Tom','Rose','Bob']
names.remove('Bob1')
print(names)
输出:
ValueError: list.remove(x): x not in list
【改】
当想要操作列表中的某个元素时,需要通过索引(下标),来操作指定元素
# 修改列表中某元素的值
names = ['Bob','Tom','Rose']
names[1] = 'Lisa'
print(names)
输出:['Bob', 'Lisa', 'Rose']
【查】
获取单个元素 items[index],注意负索引
nums = [3,4,5,6,7,8,9]
print(nums[-2])
输出:8
获取元素索引 index()
# names.index() 返回列表中某个元素的索引值;如果有多个相同元素,则返回左数第一个元素的索引值
names = ['Bob','Tom','Bob','Rose','Lisa','Job','Judy']
print(names.index('Tom'))
print(names.index('Bob')) # 有多个相同元素,则返回左数第一个元素的索引值
输出:
1
0
nums = [3,4,5,6,7,5,8,9]
idx = nums.index(5,3) # 从第3个索引开始,一直到最后,获取5对应的索引
print(idx)
输出:5
获取指定元素个数 count()
# names.count() 查询列表中某元素有多少个
names = ['Bob','Tom','Bob','Rose','Lisa','Job','Judy']
print(names.count('Tom'))
print(names.count('Tom1'))
print(names.count('Bob'))
输出:
1
0
2
获取多个元素–切片,items[start:end :step]
# 切片--正切、步长、倒切、反转
names = ['Bob','Tom','Rose','Lisa','Job','Judy']
print(names[0:2])
print(names[0:]) # 打印整个列表
print(names[0:4:2]) # 从索引0到索引3,步长为2进行切片
print(names[0::2]) # 从索引0到结尾,步长为2进行切片
print(names[::2]) # 从索引0到结尾,步长为2进行切片
print(names[-4:]) # 倒切片(倒数后四个元素)
print(names[-4:-1]) # 倒切片(倒数后三个元素)
print(names[-4::2]) # 倒切片加步长
# 反转
print(names[::-1]) # 反转整个列表
print(names[5:2:-1]) # 反转部分元素
输出:
['Bob', 'Tom']
['Bob', 'Tom', 'Rose', 'Lisa', 'Job', 'Judy']
['Bob', 'Rose']
['Bob', 'Rose', 'Job']
['Bob', 'Rose', 'Job']
['Rose', 'Lisa', 'Job', 'Judy']
['Rose', 'Lisa', 'Job']
['Rose', 'Job']
['Judy', 'Job', 'Lisa', 'Rose', 'Tom', 'Bob']
['Judy', 'Job', 'Lisa']