python 推导式(列表、字典、集合)

列表推导式

问题:我该如何快速生成一个列表[date1,date2,date3,…]?

普通方法:

k=[]
for i in range(100):
    l.append('data{}'.format(i))
print(k)

推导式:

new_k = [ 'data{}'.format(i) for i in range(100)]
print(new_k)

我们还可以对其做一些限制:

new_k = [ 'data{}'.format(i) for i in range(100) if i%2==0]
print(new_k)

字典推导式

问题:快速创建这样一个字典{1:1、2:4、3:9、4:16、5:25、6:36、7:49、8:64、9:81、10:100}

普通方法:

square_dict = dict()
for num in range(1, 11):
    square_dict[num] = num*num
print(square_dict)

推导式方法:

square_dict = {num: num*num for num in range(1, 11)}
print(square_dict)

在这里插入图片描述
相信看了这张图片大家应该明白对应位置的参数的含义了吧
字典推到式还可以这样写:

old_price = {'milk': 5, 'coffee': 10, 'bread': 8}
# 该代码目的是实现将人民币价格转换为英镑
dollar_to_pound = 0.1097 # 人民币:英镑9.1134:1
new_price = {item: value*dollar_to_pound for (item, value) in old_price.items()}
print(new_price)

输出结果:

{'milk': 0.5485, 'coffee': 1.097, 'bread': 0.8776}

字典推导式同样可以有条件:

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}

even_dict = {k: v for (k, v) in original_dict.items() if v % 2 == 0}
print(even_dict)

输出:

{'jack'38'michael'48}

不满足条件,key连同value一并删除。

集合推导式

c = {i for i in [1,1,1,2,3,3,3]}

结果:

{1, 2, 3}

这里依然是集合的性质,删除相同元素

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值