列表、集合、元组之间的转化
变为列表:list(xx)
变为集合:set(xx)
变为元组:tuple(xx)
list1=['b','b','c','d','e']
s1={100,200,300,400}
t1=('a','b','c','d','e')
print(list(t1)) # ['a', 'b', 'c', 'd', 'e']
print(list(s1)) # [200, 100, 400, 300]
print(set(list1)) # {'c', 'e', 'b', 'd'}
print(set(t1)) # {'c', 'e', 'd', 'a', 'b'}
print(tuple(list1)) # ('b', 'b', 'c', 'd', 'e')
print(tuple(s1)) # (200, 100, 400, 300)
注意:
【1】集合有查重功能,所以会删去重复的部分
【2】集合不支持下标
即用一个表达式创建一个有规律的列表或控制一个有规律列表
需求1:创建一个1-10的列表
方法1:while/for循环
#while循环
list1=[]
i=1
while i<=10:
list1.append(i)
i+=1
print(list1)
#for循环
for i in range(1,11):
list1.append(i)
print(list1)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
方法2:列表推导式
list1=[i for i in range(1,11)]
print(list1)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
需求2.:创建一个0-10的偶数序列
方法1:range
list1=[i for i in range(0,11,2)]
print(list1)
#[0, 2, 4, 6, 8, 10]
方法2:if
list =[]
for i in range(11):
if i%2==0:
list.append(i)
print(list) #[0, 2, 4, 6, 8,10]
方法2:range+if
list =[i for i in range(10) if i%2==0]
print(list) # [0, 2, 4, 6, 8]
需求3:创建[ (1,0), (1,1), (1,2), (2,0), (2,1) (2,2) ]列表
方法:两个range
list = { 格式 for 变量1 in 来源1 for 变量2 in来源 2},两个for会产生嵌套的效果
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)]
快速合并列表为字典或提取字典中目标数据
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为key,list2为value。如果list1>list2则报错,所应选取短的list的长度
dict = { 目标格式 for 变量 in 变量来源 }
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'}
3.提取字典中的目标数据
dict2 = { 目标格式 for 目标数据 in 数据来源 if 条件 }
dict1 = {
'day1': 100,
'day2': 120,
'day3': 200
}
dict2 = {key:value for key,value in dict1.items() if value>100}
print(dict2)
#{'day2': 120, 'day3': 200}
1.根据list1的数据创建集合
s1的数据为list1每个数的平方
list1 = [1,2,3,4]
s1 = {i**2 for i in list1}
print(s1)
#{16, 1, 4, 9}