1、列表常见操作
1.1 添加元素
(1)append(元素):在列表末尾追加一个元素。
# 示例
li = [1, 2, 3]
li.append(4)
li.append("bingbing")
li.append([1, 2, 3])
print(li)(2)extend(可迭代对象):将一个可迭代对象中的所有元素逐一添加到列表末尾。
# 示例
li = [1, 2, 3]
# li.extend(4) # TypeError: 'int' object is not iterable
li.extend("xiaobai") # 拆分成一个个字符再逐一放入列表
li.extend([1, 2, 3, 44, 555]) # 拆分成一个个元素再逐一放入列表
print(li)(3)insert(索引位置, 元素):在列表的指定位置插入一个新的元素。
# 示例 li = [1, 2, 3] li.insert(1, 8) # 在索引1的位置插入元素8 li.insert(9, 4) # 如果仅仅是在列表的末尾添加元素,通常推荐使用append方法,效率更高。 print(li)
1.2 修改元素
列表[索引] = 新值
# 示例 li = [11, 22, 33] li[1] = 88 # 修改索引1的元素为88 # li[9] = 44 # IndexError: list assignment index out of range print(li)
1.3 查找元素
(1) in:检查一个元素是否存在于列表中。如果存在则返回True;否则返回False。
(2)not in:检查一个元素是否不存在于列表中。如果不存在则返回True;否则返回False。
# 示例1
name = ["xiaobai", "susu", "maiya", "ziyi"]
print("bingbing" in name) # True
print("i" in name) # False
print("hahha" not in name) # True# 示例2
# 需求:用户输入名字作为昵称,昵称重复则不能使用。
# 假设这是已经存在的昵称列表
names = ["xiaobai", "chengzi", "qingyan", "xuemiao"]
# 循环次数未知,但结束条件(昵称不重复)已知 ==》 while True + break
while True:
# 用户输入名字作为昵称 ==》 input()
name = input("请输入昵称:")
# 判断昵称是否重复 ==》 判断用户输入的昵称 是否存在于 昵称列表
if name in names:
print("昵称已经存在!")
# 重新输入
# 重新判断
else:
print("昵称不存在!")
# 将用户输入的昵称保存到昵称列表中
names.append(name)
print(names)
# 退出循环
break(3)index(元素, 起始索引, 结束索引):查找列表中某个元素值第一次出现的索引(位置)。如果元素不存在于列表中,则抛出异常ValueError。
# 示例
fruits = ["apple", "banana", "cherry", "apple"]
# 基本使用
print(fruits.index("cherry")) # 2
print(fruits.index("apple")) # 0
print(fruits.index("pear")) # ValueError: 'pear' is not in list
# 使用 start 参数
print(fruits.index("apple", 1)) # 3
# 使用 start 和 stop 参数,遵循包前不包后规则
print(fruits.index("apple", 1, 3)) # ValueError: 'apple' is not in list(4) count(元素):统计某个元素在列表中出现的次数。
# 示例
fruits = ["apple", "banana", "cherry", "apple"]
print(fruits.count("cherry")) # 1
print(fruits.count("apple")) # 2
print(fruits.count("pear")) # 01.4 删除元素
(1)del【公共操作】:根据索引删除列表中的元素,如果尝试删除一个不存在的索引对应的元素,则抛出异常IndexError
# 示例1 fruits = ["apple", "banana", "cherry", "apple"] # 根据下标删除指定的元素 del fruits[1] # del fruits[9] # IndexError: list assignment index out of range print(fruits) fruits = ["apple", "banana", "cherry", "apple"] # 删除整个列表 del fruits print(fruits) # NameError: name 'fruits' is not defined
# 示例2 name = "xiaobai" del name print(name) # NameError: name 'name' is not defined
(2)remove(元素):移除列表中第一个匹配指定值的元素。如果列表中不存在该元素,则抛出异常ValueError。
# 示例1 li = [1, 2, 3, 2, 3] # 删除存在的元素 li.remove(2) # 删除不存在的元素 li.remove(9) # ValueError: list.remove(x): x not in list print(li)
# 示例2 li = [2, 2, 2] for i in li: if i == 2: li.remove(i) print(li) # 第一次循环 i = 2 ==> li.remove(2) ==> [2, 2] # 第二次循环 i = 2 ==> li.remove(2) ==> [2] # 反向删除元素 # 通过下标反向遍历列表 # 求列表长度 len() # print(len(li)) # 最大下标:len(li)-1 最小下标 0 li = [2, 2, 2] for i in range(len(li)-1, -1, -1): # 2 1 0 if li[i] == 2: li.remove(li[i]) print(li)
1.5 排序
(1)sort(key=None, reverse=False):对列表中的元素进行排
# 示例 li = [1, 5, 9, 8, 7, 6, 3] li.sort() print(li) li.sort(reverse=True) # 降序排列 print(li)
(2)reverse():就地反转列表中的元素顺序
# 示例 li = [1, 5, 9, 8, 7, 6, 3] li.reverse() print(li)
1.6 列表推导式
(1)含义
是一种简洁的快速构建列表的方式
(2)语法格式
[表达式 for 变量 in 可迭代对象 if 条件]
# 示例1 li = [] for i in range(1, 6): li.append(i) print(li) print([i for i in range(1, 6)])
# 示例2 li = [11, 22, 33] li2 = [] for i in li: li2.append(i*5) print(li2) print([i * 5 for i in li])
# 示例3 li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 100] li2 = [] for i in li: if i < 66: li2.append(i) print(li2) print([i for i in li if i < 66])
1.7 列表嵌套
列表中包含列表
# 示例 li = [[1, 2, 3], 4, 5, 6] print(li[0]) # [1, 2, 3] print(li[0][2]) li = [1, [2, [4, 5], [7, [8, 0], 9]], 2, 3, 4] print(li[1]) print(li[1][2]) print(li[1][2][1]) print(li[1][2][1][0])
著作权归文章作者所有。 未经作者允许禁止转载!