python之容器类型转换和推导式

匿名 (未验证) 提交于 2019-12-02 22:51:30

摘要:本文主要介绍了数据类型的转换和推导式的相关内容。

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'}

推导式在列表中的使用:

 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}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!