容器转换类型
【1】tuple():转换为元组
list1=['b','b','c','d','e']
s1={100,200,300,400}
t1=('a','b','c','d','e')
# tuple():转换为元组
print(tuple(list1))
print(tuple(s1))
# ('b', 'b', 'c', 'd', 'e')
# (200, 100, 400, 300)
【2】list():转换为列表
list1=['b','b','c','d','e']
s1={100,200,300,400}
t1=('a','b','c','d','e')
# list():转换为列表
print(list(t1))
print(list(s1))
# ['a', 'b', 'c', 'd', 'e']
# [200, 100, 400, 300]
【3】set():转换为集合
list1=['b','b','c','d','e']
s1={100,200,300,400}
t1=('a','b','c','d','e')
# list():转换为列表
print(set(list1))
print(set(t1))
# {'c', 'e', 'b', 'd'}
# {'c', 'e', 'd', 'a', 'b'}
注意:
【1】集合有查重功能,所以会删去重复的部分
【2】集合不支持下标
推导式
范围:列表字典集合
列表推导式
作用:用一个表达式创建一个有规律的列表或控制一个有规律列表
别名:列表生成式
体验
需求:创建一个0-10的列表
方法一:while循环实现
# 1.准备一个空列表
list1=[]
# 2.书写循环,一次追加数字到空列表list1
i=0
while i<=10:
list1.append(i)
i+=1
print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
注意:python没有list1[i-1]=i的算法
方法二.for循环
# 1.准备一个空列表
list1=[]
# 2.书写循环,一次追加数字到空列表list1
j=0
for i in range(0,11):
list1.append(i)
print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
方法三:列表推导式
list1=[i for i in range(11)]
print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
带if的列表推导式
需求:创建0-10的偶数列表
方法一:rang()
list =[i for i in range(0,10,2)]
print(list) #[0, 2, 4, 6, 8]
方法二:if
list =[]
for i in range(10):
if i%2==0:
list.append(i)
print(list) #[0, 2, 4, 6, 8]
方法三:
list =[i for i in range(10) if i%2==0]
print(list) # [0, 2, 4, 6, 8]
多个for循环实现列表推导式
需求:创建列表如下
[ (1,0), (1,1), (1,2), (2,0), (2,1) (2,2) ]
代码如下
list =[(i,j) for i in range(1,3) for j in range(3)]
print(list) #[0, 2, 4, 6, 8]
# [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
for循环嵌套
字典推导式
思考:如果有下面的两个列表
list1=[‘name’, ‘age’, ‘gender’]
list2=[‘tom’, 12, ‘man’]
如何快速合并为一个字典?
答:字典推导式
作用:快速合并列表为字典或提取字典中目标数据
体验:
【1】创建一个字典:字典key是1-5的数字,value是这个数字的2次方
dict ={i: i**2 for i in range(1,5)}
print(dict)
#{1: 1, 2: 4, 3: 9, 4: 16}
【2】将两个列表合并一个字典:
list1=['name', 'age', 'gender']
list2=['tom', 12, 'man']
dict={list1[i]:list2[i] for i in range(len(list1))}
print(dict)
#{'name': 'tom', 'age': 12, 'gender': 'man'}
如果list1>list2
list1=['name', 'age', 'gender','lll']
list2=['tom', 12, 'man']
dict={list1[i]:list2[i] for i in range(len(list1))}
print(dict)
# 报错
需要长度改为短的list2
注意:列表长短与统计参考的选取
【3】提取字典中的目标数据
选择出大于等于120的数据
list1={'day1':111,'day2':120, 'day3':290}
dict={key:value for key, value in list1.items() if value >=120}
print(dict)
# {'day2': 120, 'day3': 290}
集合推导式
使用率不高
需求:创建一个集合,数据为下方列表的二次方
list1=[1,1,2]
代码:
list1=[1,1,2]
dict={i**2 for i in list1}
print(dict)
# {1, 4}
注意:集合的去重功能
总结: