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}
posted @ 2019-11-05 11:17  AmingGlaxy  阅读(218)  评论(0编辑  收藏  举报