首页 > 编程语言 > 详细

Python 各种推导式

时间:2020-06-18 18:44:50      阅读:70      评论:0      收藏:0      [点我收藏+]

列表推导式

一般推导

# 生成1、2、3、4、5、6、7、8、9、10的列表
lis = [i for i in range(1,11)]

带过滤条件的推导

# 生成 0、2、4、6、8 的列表
[i for i in range(10) if i % 2 == 0]

带函数的推导

# 生成 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 的列表

func = lambda a:a**2

lis = [func(i) for i in range(10)]

字典推导式

字典花式初始化

# way1
dic1 = {‘name‘: ‘monkey‘, ‘gender‘: ‘male‘}
# {‘name‘: ‘monkey‘, ‘gender‘: ‘male‘}

# way2
dic2 = dict(name=‘monkey‘, gender=‘male‘)
# {‘name‘: ‘monkey‘, ‘gender‘: ‘male‘}

# way3
dic3 = dict(zip((‘name‘, ‘gender‘), (‘monkey‘, ‘male‘)))
# {‘name‘: ‘monkey‘, ‘gender‘: ‘male‘}

# way4
lis = [‘name‘, ‘gender‘]
dic4 = dict.fromkeys(lis, None)
# {‘name‘: None, ‘gender‘: None}

# way5
dict([(‘name‘, ‘monkey‘), (‘gender‘,‘male‘)])
# {‘name‘: None, ‘gender‘: None}

字典推导式

# 将两个列表拟合成字典
lis1 = [0, 1, 2, 3, 4, 5, 6]
lis2 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘]

dic = {k:v for k,v in zip(lis1, lis2)}

集合推导式

set1 = {i for i in range(10)}

复合推导

# 列表 字典 元组的复合
[{k:(v,j)} for k,v,j in zip(lis, lis1, lis2)]

# [
# {0: (0, ‘a‘)},
# {1: (1, ‘b‘)}, 
# {4: (2, ‘c‘)},
#      ...
# ]

Python 各种推导式

原文:https://www.cnblogs.com/monkey-code/p/13158905.html

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