目录
一、类型转换
1.tuple()
将某个序列转换成元组
2.list()
将某个序列转换成列表
3.set()
将某个序列转换成集合
list0 = [1, 1, 2, 3, 4, 5]
set0 = {'a', 'b', 'c', 'd'} #集合没有顺序
tuple0 = (10, 11, 100, 101, 110, 111)
# tuple()
print(tuple(list0)) # (1, 1, 2, 3, 4, 5)
print(tuple(set0)) # ('b', 'a', 'c', 'd')
print(tuple(tuple0)) # (10, 11, 100, 101, 110, 111)
# list()
print(list(list0)) # [1, 1, 2, 3, 4, 5]
print(list(set0)) # ['c', 'd', 'a', 'b']
print(list(tuple0)) # [10, 11, 100, 101, 110, 111]
# set()
print(set(list0)) # {1, 2, 3, 4, 5} → 去重性
print(set(set0)) # {'c', 'b', 'd', 'a'}
print(set(tuple0)) # {100, 101, 10, 11, 110, 111}
二、推导式
用于简化代码
1.列表推导式(列表生成式)
用一个表达式创建一个有规律的列表或控制一个有规律的列表
列表中的数据是有规律的
语法
[xx for xx in range()]
1.1while for循环与列表推导式对比
- while循环实现
# 创建一个0-10的列表
list = []
i = 0
while i <= 10:
list.append(i)
i += 1
print(list)
- for循环实现
# 创建一个0-10的列表
# for
list = []
for i in range(11):
list.append(i)
print(list)
- 列表推导式实现
# 创建一个0-10的列表
# 列表推导式
list = [i for i in range(11)]
print(list)
1.2带if的列表推导式
- 用range()步长控制
# 创建0-10偶数
# range()函数步长控制
list = [i for i in range(0, 11, 2)]
print(list)
- if列表推导式
# 创建0-10偶数
# for循环+if
list = []
for i in range(11):
if i % 2 == 0:
list.append(i)
i += 1
print(list)
# 用if列表推导式
list = [i for i in range(11) if i % 2 == 0]
print(list)
1.3多个for循环实现列表推导式
- for循环嵌套
# 创建循环[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# for循环嵌套
list = []
for i in range(1, 3):
for j in range(3):
list.append((i, j))
print(list)
- 多个for循环列表推导式
# 创建循环[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# 多个for循环列表推导式
list = [(i, j) for i in range(1, 3) for j in range(3)]
print(list)
2.字典推导式
快速合并列表为字典或提取字典中的目标数据
语法
[xx1: xx2 for ... in ...]
2.1创建一个字典
# 创建一个字典,key是1-5,value是其平方
dict = {i: i**2 for i in range(1, 6)}
print(dict)
2.2将两个列表合并为一个字典
list1 = ['name', 'gender', 'age']
list2 = ['Lucy', '19', 'woman']
dict = { list1[i]: list2[i] for i in range(len(list1))}
print(dict) # {'name': 'Lucy', 'gender': '19', 'age': 'woman'}
如果两列表数据个数相同,len(任意列表)均可,若数据个数不同,len统计数据个数少的列表个数,否则报错。
2.3提取字典中的目标数据
#人数少于10人的
grade = {'A': 7, 'B': 12, 'C': 20, 'D': 15, 'F':2}
num = {key: value for key, value in grade.items() if value < 10}
print(num) #{'A': 7, 'F': 2}
3.集合推导式
按要求创建一个集合
语法
[xx for xx in]
集合有去重功能
# list中数据的立方
list = [1, 1, 2, 3, 4, 4]
set = {i ** 3 for i in list}
print(set) # {8, 1, 27, 64}