每天一小节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']]