本教程所有配套资料索取方式如下:
点赞三连后Q裙搜索:652892456找管理员获取(或直接加小助理微信:python5180 ){备注:UR的出不克}
学习或其他资料也可+Q群:652892456,告别孤单,共同进步!
1 列表
- 能够存储多个元素的容器
1.1 和Java中数组的区别
- 列表的长度可变
- 列表可存储不同类型的数据
1.2 创建列表
# 第1种创建列表的方式
x = [1 , 1, "nihao"] # 适用于已知列表元素
# 第2种创建列表的方式
y = [] # 适用于不知道列表将要存储哪些元素
z = list()
print(x)
print(y)
print(z)
1.3 增
x = [1, 2, 3, 4]
# 1、一次增加1个元素
# 追加元素,
x.append(5)
print(x)
# 插入元素
x.insert(1,"hello")
print(x)
# 2、一次增加多个元素
# 扩展
x.extend("nihao")
x.extend([1,2,3])
x.extend((4,5,6))
x.extend({7,8,9})
x.extend({"name":"zhangsan"})
print(x)
1.4 删
# 清空
x = ["a", "b", 'c', "d"]
x.clear()
print(x)
# 删除
x = ["a", "b", 'c', "d"]
del x
print(x) # NameError: name 'x' is not defined
# 已知要被删除元素的索引
x = ["a", "b", 'c', "d"]
temp = x.pop() # 删除最后1个元素
print(x) # ['a', 'c', 'd']
print(temp) # d
x.pop(0) # 删除第1个元素
del x[0] # 删除第1个元素
print(x)
# 不知道要被删除元素的索引,但知道要删除谁
x = ["a", "b", 'c', "d"]
x.remove("b")
print(x) # ['a', 'c', 'd']
1.5 改
# 修改:再赋值,没有replace方法
x = ["a", "b", 'c', "d"]
x[0] = 1
print(x) # [1, "b", 'c', "d"]
1.6 查
x = ["a", "b", 'c', "d"]
# 1、查某1个元素
print(x[0]) # a
# 2、切片
print(x[0:2]) # ['a', 'b']
print(x[::2]) # ['a', 'c']
2 其他常用方法
2.1 copy
- 浅复制
# 浅复制:复制的只是内存地址
x = ["a", "b", 'c', "d" ,[1,2]]
y = x.copy()
print(y)
x[-1].append(3)
print(y)
# ['a', 'b', 'c', 'd', [1, 2]]
# ['a', 'b', 'c', 'd', [1, 2, 3]]
- 深复制
# 深复制:
import copy
x = ["a", "b", 'c', "d" ,[1,2]]
z = copy.deepcopy(x)
print(z)
x[-1].append(3)
print(z)
# ['a', 'b', 'c', 'd', [1, 2]]
# ['a', 'b', 'c', 'd', [1, 2]]
2.2 排序
- 调用sort方法会原地排序,失去了原列表的顺序
# 升序
x = [4, 2, 3, 1]
x.sort() # 依据:大小,默认升序
print(x)
# [1, 2, 3, 4]
# 降序
x = [4, 2, 3, 1]
x.sort(reverse = True)
print(x)
# [4, 3, 2, 1]
# 排序依据
x = ["ab", "abcd", "abc", "a"]
x.sort(key = len,reverse = True) # 依据:长度,由大到小
print(x)
# ['abcd', 'abc', 'ab', 'a']
- 调用sorted函数排序,保留了原列表的顺序
x = [4, 2, 3, 1]
y = sorted(x)
print(f"排序前的列表:{x}")
print(f"排序后的列表:{y}")
# 排序前的列表:[4, 2, 3, 1]
# 排序后的列表:[1, 2, 3, 4]
2.3 count
x = [1, 3, "a", "a"]
y = x.count("a")
print(y)
# 2
2.4 index
x = [1, 3, "a", "a"]
print(x.index("a"))
# 2
2.5 翻转
- 调用reverse方法会原地翻转,失去了原列表的顺序
x = [1, 3, 2, 2]
x.reverse()
print(x)
# [2, 2, 3, 1]
- 调用reversed函数翻转,保留了原列表的顺序
x = [1, 3, 2, 2]
y = list(reversed(x))
print(f"翻转前的列表:{x}")
print(f"翻转后的列表:{y}")
# 翻转前的列表:[1, 3, 2, 2]
# 翻转后的列表:[2, 2, 3, 1]
3 常用的函数
3.1 求最值等
# index:查看列表中某元素的数量
x = [1, 3, 4, 2]
print(len(x))
print(max(x))
print(min(x))
print(sum(x))
3.2 all、any
x = [0, "", {}, [] , () , 10]
# 查看所有元素是否为True
print(all(x)) # False
# 查看列表中是否存在元素为True
print(any(x)) # True
3.3 map映射
x,y,z= map(int,[1.2 , 2.5 , 3.3])
print(x)
print(y)
print(z)
# 1
# 2
# 3
temp = list(map(int,[1.2 , 2.5 , 3.3]))
print(temp)
# [1, 2, 3]
- 使用map求解水仙花数
for i in range(100,1000):
temp = list(map(int , str(i)))
if temp[0]**3 + temp[1]**3 + temp[2]**3 == i:
print(i)
# 153
# 370
# 371
# 407
4 列表的加法和乘法
x = [1, 3, 4, 2]
y = [1, 3, 4, 2]
print(x+y)
# [1, 3, 4, 2, 1, 3, 4, 2]
print(x * 3)
# [1, 3, 4, 2, 1, 3, 4, 2, 1, 3, 4, 2]
5 遍历列表元素
5.1 遍历列表的两种方式
x = [1, 3, 3, 2]
for i in x:
print(i)
// 可以使用到索引这样有用的数据
for i in range(0,len(x)):
print(x[i])
5.2 练习
- 查询索引
# 1、从左边查,查第1个匹配目标值元素的索引
x = [1, 3, 3, 2]
for i in range(0,len(x)):
if x[i] == 3:
print(i)
break
# 2、从左边查,查所有匹配目标值元素的索引
x = [1, 3, 3, 2]
for i in range(0,len(x)):
if x[i] == 3:
print(i)
# 3、从右边查,查第1个匹配目标值元素的索引
x = [1, 3, 3, 2]
for i in range(-1,-len(x),-1):
if x[i] == 3:
print(i)
break
# -2
x = [1, 3, 3, 2]
for i in range(len(x)-1,0,-1):
if x[i] == 3:
print(i)
break
# 2
-
将两个变量对应位置的元素求和,添加到一个新列表中
a = [0,1,2,3,4,5,6]
b = [0,1,2,3,4,5,6]
6 列表推导式
- 生成有规律数据集合
- 作用:提高编程效率
# 生成[1,2,3,4,5,6,7,8,9,10]
# 方式1
x = [1,2,3,4,5,6,7,8,9,10]
# 方式2
y = []
for i in range(1,11):
y.append(i)
print(y)
# 方式3
z = [i for i in range(1,11)]
print(z)
# 带有if的列表推导式
a = [i for i in range(1,101) if i % 2 == 1]
print(a)
# for循环嵌套的列表推导式
b = [(i,j) for i in [1,2,3] for j in ["a","b"]]
print(b)