列表
定义:能装东西的东西,在python中用[ ]表示一个列表,列表中的元素通过逗号隔开。
特性:
- 也像字符串一样有索引和切片
- 索引如果超过范围会报错
- 可以用for循环进行遍历
- 用len可以拿到列表的长度
列表的增删改查
列表的添加
append():在列表的最后面追加
insert():插入
list.insert(0,"a")
#在列表的第零个位置插入元素a
extend():参数为一个列表,可以合并两个列表,批量添加
列表的删除
pop():参数为一个索引,给出被删除的索引,返回被删除的元素
remove():删除某个元素
列表的修改
直接用索引就可以进行修改操作
last[4]="增加"
#在列表中索引为4的位置增加一个元素
列表的查询
直接用print(list[索引])来查询。
练习
#把所有的姓张的人改为姓王
list=['赵敏','张绍刚','赵本山','张无忌','武则天','嬴政','马超']
#for item in list:#循环的是元素,此时我们看不到元素的索引位置
for i in range(len(list)):#len(list)是list的长度,此时直接拿到列表索引的for循环
item=list[i] #item依然是列表中的每一项
if item.startswith("张"):
new_name="王"+item[1:]
#把新名字丢回列表(需要索引)
list[i]=new_name #修改
print(list)
列表的其他操作
排序
列表本身是有顺序的,它的顺序是按照你存放的顺序保存的
list=[111,1,222,35,15]
list.sort() #对列表元素进行升序排序
list.sort(reverse=True) #对列表元素进行降序排序
print(list)
列表的嵌套
list=["abc","def",["哈哈哈","呵呵呵",["可乐","雪碧","芬达","aaa"]],"ghv","xyz"]
#找到元素“芬达”
print(list[2][2][2])
#将列表中的aaa元素全部变为大写
list[2][2][3]=list[2][2][3].upper()
列表的循环删除
#把列表中姓张的人删除
list=['赵敏','张绍刚','赵本山','张无忌','武则天','嬴政','马超']
for item in list:
if item.startswith("张"):
list.remove(item)
print(list)
运行结果如图所示:(这样的写法是错误的,会有元素被遗漏)
正确做法:
#把列表中姓张的人删除
list=['赵敏','张绍刚','赵本山','张无忌','武则天','嬴政','马超']
temp=[] #准备一个临时列表,负责存储要删除的内容
for item in list:
if item.startswith("张"):
temp.append(item)#把要删除的内容记录下来
for item in temp:
list.remove(item) #去原列表中进行删除
print(list)
#安全稳妥的循环删除方式:将要删除的内容,保存在一个新列表中,循环新列表,删除老列表