每天一小节python知识
积少成多它不香吗???
第十节
列表常用操作
查找
a、列表名[下标] 函数描述
name1 = ["xwa", "xla", "xza", "xwa"]
print(name1[2])
# 结果
xza
b、.index(数据)存在返回下标,否则报错
print(name1.index("xwa", 1, 4)) # 可以限制查找范围,否则默认找到该列第一个数据下标
# 结果:
3
c、.count(数据) 返回指定数据在列表中的次数
print(name1.count("xwa"))
# 结果
2
d、len(列表名) 返回列表的长度,长度指列表中有多少个数据
print(len(name1))
# 结果:
4
判断和增加
a、in:数据in列表,判断数据是否在列表中 两种结果布尔型True或False
print("xza" in name1) # 结果 True
print("xza1" in name1) # 结果 False
b、not in:数据not in 列表,判断数据是否不在列表中
print("xla" not in name1) # False
print("xla1" not in name1) # True
c、append():列表名.append(数据)列表结尾追加数据
name1.append("lie")
print(name1)
# 结果:
['xwa', 'xla', 'xza', 'xwa', 'lie']
d、extend():列表名.extend(数据)数据是序列的话列表结尾逐一追加
name1.extend("lie") # 字符串拆分成一个个然后在结尾添加
print(name1)
# 结果:
['xwa', 'xla', 'xza', 'xwa', 'l', 'i', 'e']
e、insert():列表名.insert(下标,数据) 指定位置新增数据
name1.insert(2, "xxa") #
print(name1)
# 结果:
['xwa', 'xla', 'xxa', 'xza', 'xwa']
删除
name2 = [“lw”, “ll”, “lw”, “lh”]
a、del 目标 :del列表名或del列表名[下标],删除列表或列表中的数据
del name2 # 删除列表
print(name2)
列表删除,报错
del name2[2]
print(name2)
# 结果:
['lw', 'll', 'lh']
b、pop():列表名(下标),删除指定下标的数据,并且返回该数据(删掉的数据)
del_name = name2.pop(1)
print(del_name)
print(name2)
# 结果
ll
['lw', 'lw', 'lh']
del_name2 = name2.pop()
print(del_name2) # 删除的数据
print(name2) # 删除后剩余的数据
# 结果
lh
['lw', 'll', 'lw']
c、remove():列表名.remove(数据),删除列表中某个数据的第一个配置项(两个相同的数据时候的第一个数据)
name2.remove("lw") # 删除第一个lw
print(name2)
# 结果
['ll', 'lw', 'lh']
d、.clesr():列表名.clear() ,清空列表(删掉列表里面的所有数据
name2.clear()
print(name2)
# 结果
[]
修改和复制
name3 = [“yul”, “kun”, “yud”, “yul”]
a、列表名[下标] = 新数据 :列表名[下标] = 型数据,按照下标修改指定数据
name3[2] = "lll"
print(name3)
# 结果
['yul', 'kun', 'lll', 'yul']
b、reverse():列表名.reverse(),实现列表中的数逆序,倒序
name3.reverse()
print(name3)
# 结果:
['yul', 'yud', 'kun', 'yul']
c、sort:列表名.sort() ,实现列表升序排序 # 数字从小到大,字母从a到z,汉字不规则,可能是按照拼音或者是笔画
name4 = [3, 5, 2, 9, 1, 8, 0]
name3.sort()
name4.sort()
print(name3)
print(name4)
# 结果:
['kun', 'yud', 'yul', 'yul']
[0, 1, 2, 3, 5, 8, 9]
d、sort:列表名.sort(reverse = False),reverse = True降序,reverse = False升序(默认) reverse表示排序的规则
name4.sort(reverse=True) # 降序
print(name4)
# 结果;
[9, 8, 5, 3, 2, 1, 0]
name4.sort(reverse=False) # 升序
print(name4)
# 结果:
[0, 1, 2, 3, 5, 8, 9]
e、复制:copy():列表名.copy() ,复制存储原数据
name3 = name4.copy()
print(name3)
print(name4)
# 结果;
[3, 5, 2, 9, 1, 8, 0]
[3, 5, 2, 9, 1, 8, 0]
列表的嵌套使用
列表嵌套:指的是一个列表里面包含了其他的子列表。
name5 = [[["xl", "yul", ["yy"]], "xw", "xz"], ["1", "2", "3"], ["a", "b", "c"]] # 列表嵌套,[下标][下标]...都是从零开始
print(name5[1][2]) # 3
print(name5[0][0][2][0]) # yy
列表的循环遍历:依次打印列表的各个数据
list1 = ["wang", "li", "zang"]
# for循环
for i in list1:
print(i)
# 结果:
wang
li
zang
while循环遍历
i = 0 # 下标从零开始
while i < len(list1): # 当不知道列表中有多少数据用len函数
print(list1[i])
i += 1
# 结果:
wang
li
zang
"""
10个宝珠,随机分配给张三团伙三人
宝珠:["a", "b", "c", ...]
张三团伙三人[[][][]]
"""
# 导入随机模块和函数
import random # 导入random随机模块
# num = random.randint(0, 2) # 放在这里只程序开始时候运行一次,
# 准备宝珠
bead = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
san = [[], [], []]
# 分配宝珠到张三哪里
for z in bead:
# 把宝珠z添加到张三三人的子列[[], [], []]那里去,使用append函数添加,append(数据), 列表名[下标] = 新数据,按照下标修改指定数据
# 随机分配:导入随机函数
num = random.randint(0, 2) # 再通过random模块导入随机函数,包前后0,1,将随机数给num,
san[num].append(z)
print(san)
# 结果:三次运行
[['a', 'b', 'c', 'g', 'i', 'j'], ['d', 'h'], ['e', 'f']]
[['c', 'e', 'g', 'h', 'i'], ['d', 'j'], ['a', 'b', 'f']]
[['a', 'd', 'e', 'i'], ['b', 'g', 'j'], ['c', 'f', 'h']]