python-04
- 列表
定义/表示:
能装东西的东西
用 [] 来表示,里面的东西用逗号隔开
特性:
1.也有索引和切片 //超过长度会报错 list index out of rangel
2.可以用for循环遍历
3.使用len拿到字符串的长度
list = ["1","2","3","4","5"]
# print(list[0])
# print(list[2:5:2])
for item in list:
print(item)
print(len(list))
列表的增删改查
添加
三种方式:
append()往列表中追加
list.append("555") print(list)
insert() 插入
语法结构
insert(index,oject)
list.insert(0,"a") print(list)
extend()可以合并两个列表
extend(anoher list)
list.extend(["b", "c","d"]) print(list)
删除
两种方式:
pop()给出被删除的索引,返回被删除的元素
remove() 直接在括号里面写要删除的元素
ret = list.pop(3) print(list) # ret = list.pop(3) //这里是对已经删掉的list进行的操作 print(ret) # list.remove("555") # print(list)
修改
- 利用索引
查询
- 直接使用索引
print(list[2])
尝试
# 把所有的姓张的改成姓王的
list = ["张韶涵","张三","李麻子","张伟"]
# for item in name: # 看不见索引位置,不使用
# range不加说明的时候从0开始
for i in range(len(list)):
# range里面可以直接放列表的长度 ——> 拿到列表索引的for循环
item = list[i] # item依旧是列表中的每一项
if item.startswith("张"):
new_name = "王"+item[1:]
print(new_name)
# 把新名字放回列表(索引)
list[i] = new_name
补充
# 排序
# list1 = [1,2,3,4,5,6,7,8,"你好"]
# 本身是有顺序的
list = [11111,555,3666,6666,55555]
list.sort()
print(list)
list.sort(reverse=True)
print(list)
# 列表的嵌套
list1 = [1,2,3,[7,8,9,[15,'abc',20]],21]
print(list1[3][3][0])
list1[3][3][1] = list1[3][3][1].upper()
print(list1)
# 列表的循环删除
# 直接删除删不干净 直接用for循环
# 准备一个临时列表,负责存储要删除的东西
# 去原列表中删除
list2 = ["222","333","233"]
temp = []
for item in list2:
if item.startswith("2"):
# append 追加
temp.append(item) # 把要删除的内容记录下来
for item in temp:
list2.remove(item) # 去原列表进行删除
print(list2)
# 最稳的循环删除方案:把要删除的放到新列表,循环新列表,删除旧列表