首页 > 编程语言 > 详细

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

时间:2019-11-05 12:44:00      阅读:88      评论:0      收藏:0      [点我收藏+]

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

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}

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

原文:https://www.cnblogs.com/lzy820260594/p/11797291.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!