python之容器类型转换和推导式
摘要:本文主要介绍了数据类型的转换和推导式的相关内容。
1、类型转换
本部分的类型转换主要是列表、元组、集合三种类型的转换。主要借助三个函数list()、tuple()、set()分别进行列表、元组、集合的类型转换。
1 list1 = [10, 20, 30, 20, 40, 50] 2 s1 = {100, 300, 200, 500} 3 t1 = ('a', 'b', 'c', 'd', 'e') 4 5 # tuple(): 转换成元组 6 print(tuple(list1)) 7 print(tuple(s1)) 8 9 # list():转换成列表 10 print(list(s1)) 11 print(list(t1)) 12 13 # set():转换成集合 14 print(set(list1)) 15 print(set(t1))
执行结果如下:
1 (10, 20, 30, 20, 40, 50) 2 (200, 100, 500, 300) 3 [200, 100, 500, 300] 4 ['a', 'b', 'c', 'd', 'e'] 5 {40, 10, 50, 20, 30} 6 {'c', 'd', 'e', 'b', 'a'}
2、推导式
推导式在列表中的使用:
1 #连续添加一串数字到列表中 2 #方法1:非推导式的方法 3 list1=[] 4 for i in range(10): 5 list1.append(i) 6 print(list1) 7 #方法2:推导式的方法 8 list2=[i for i in range(10)] 9 print(list2) 10 11 #----------------------------------------------------------------- 12 13 #连续添加偶数位数字到列表中 14 #方法1:非推导式的方法,采用for if 15 list3=[] 16 for i in range(10): 17 if i%2==0: 18 list3.append(i) 19 print(list3) 20 #方法2:非推导式的方法,采用range()步长的方法 21 list4=[] 22 for i in range(0,10,2): 23 list4.append(i) 24 print(list4) 25 #方法3:以上两种方法对应的推导式方法 26 list5=[i for i in range(10) if i%2==0] 27 print(list5) 28 list6=[i for i in range(0,10,2)] 29 print(list6) 30 31 #--------------------------------------------------------------------- 32 33 #添加元组到里表中 34 #方法1:非推导式方法 35 list7=[] 36 for i in range(2): 37 for j in range(3): 38 list7.append((i,j)) 39 print(list7) 40 #方法2:推导式方法 41 list8=[(i,j) for i in range(2) for j in range(3)] 42 print(list8)
执行结果如下:
1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 3 [0, 2, 4, 6, 8] 4 [0, 2, 4, 6, 8] 5 [0, 2, 4, 6, 8] 6 [0, 2, 4, 6, 8] 7 [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)] 8 [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
推导式在字典中的使用:
1. 列表合并成为字典
1 #用推导式构成字典 2 dict1={key:key**2 for key in range(1,5)} 3 print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16} 4 5 #用推导式合并列表 6 list1=['name','age','id'] 7 list2=['Tom',18,'001'] 8 dict2={list1[i]:list2[i] for i in range(min(len(list1),len(list2)))} #字典长度取较小者,如下面的例子 9 print(dict2) #{'name': 'Tom', 'age': 18, 'id': '001'} 10 11 list3=['name','age','id','class'] 12 list4=['Tom',18,'001'] 13 dict3={list3[i]:list4[i] for i in range(min(len(list3),len(list4)))} 14 print(dict3) #{'name': 'Tom', 'age': 18, 'id': '001'}
2. 从字典中提取数据
1 #用推导式提取数据 2 count={'lenove':300,'hp':350,'dell':258,'神舟':210} 3 dict4={key:value for key,value in count.items() if value>=280} 4 print(dict4) #{'lenove': 300, 'hp': 350}
推导式在集合中的简单使用:
1 #集合中的推导式简单运用 2 list=[1,1,3] 3 set={i**2 for i in range(1,len(list))} 4 print(set) #{1, 4}