一、列表简介
1. 定义:
列表:能装东西的东西
在python中用[ ]来表示一个列表,列表中的元素通过,隔开
a = ["周润发", "周杰伦", "周华健"]
2.特性:
2.1 也像字符串一样有索引和切片
举例:
2.2 索引超过范围会报错
举例:list index out of range
2.3 可以用for循环进行遍历
举例:用item表示列表里的每个元素
2.4 用len可以拿到列表的长度
举例:
二、列表的增删改查
1. 向列表中添加内容
lst.append()
append:向列表中追加内容
举例:
insert:向列表中插入内容
lst.insert()
举例:
extend:可以合并两个列表,批量的添加
lst.extend()
举例:
2. 删除
ret = lst.pop( ):给出被删除的索引,返回被删除的元素
lst.pop(3)
ret = lst.pop(3)
举例:
remove:删除某个元素
lst.remove()
举例:
3. 修改
直接用索引就可以完成修改操作
lst[位置] = "要修改的内容"
举例:
4. 查询
直接用索引进行查询操作
print(lst[3])
小练习
lst = ["赵本山", "范伟", "宋丹丹", "高秀敏", "张三丰", "张无忌", "张伟"]
将所有姓张的人修改成姓王
解:
# for item in lst: # 此时看不到元素的索引
for i in range(len(lst)): # len(lst)列表的长度 -> 可以直接拿到列表索引的for循环
item = lst[i] # item依然是列表中的每一项
if item.startswith("张"):
new_name = "王"+item[1:] # 把新名字丢回列表(需要索引)
print(new_name)
lst[i] = new_name
print(lst)
三、列表的其他操作
1. 列表排序
对列表进行升序排序
lst.sort()
翻转排序
lst.sort(reverse=True)
举例:
2. 列表的嵌套
列表可以无限循环嵌套,要找出嵌套中的某个元素,直接lst+一层层的中括号+元素位置即可
举例:找出列表中的123
lst = ["abc", "def", ["扣你鸡哇", "萨瓦迪卡", "思密达", ["cocacola", "fenta", 123]], "ghi", "jkl", " "]
print(lst[2][3][2])
给fenta变成大写
lst[2][3][1] = lst[2][3][1].upper()
print(lst)
3. 列表的循环删除
lst = ["赵敏", "张绍刚", "张无忌", "武则天", "嬴政", "马超"]
for item in lst:
if item.startswith("张"):
lst.remove(item)
print(lst)
用此种方法删除,会存在删不干净的情况,这个例子是删除列表中姓张的元素,按照此方法运行得到的结果如下:
可以看到元素“张无忌”,没有被删掉,原因是在指令执行过程中,当位置1的“张绍刚”被删除后,原本位置2的“张无忌”会顶替原本“张绍刚”的位置,而指令会继续执行下去,判断删除后位置2上的元素,也就是说“张无忌”从位置2变成位置1,恰好会被跳过,导致没有被删除。(bug,不报错)
安全稳妥的循环删除方式:
将要删除的内容保存在一个新列表中,循环新列表,删除老列表
lst = ["赵敏", "张绍刚", "张无忌", "武则天", "嬴政", "马超"]
temp = [] #准备临时列表,负责储存要删除的内容
for item in lst:
if item.startswith("张"):
temp.append(item) # 把要删除的内容记录下来
for item in temp:
lst.remove(item) # 去原列表中进行删除操作
print(lst)