python列表链式推导以及其他推导式

(一)列表链式内容

参考来源:https://www.cnblogs.com/sickle/p/10116082.html
参考来源2:http://c.biancheng.net/view/2231.html

1.推导式可以快速生成数据存储结构中的数据

列表推导式语法格式:

[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
#注意列表用[] 字典{} 集合推导式{}

基础语法格式: 循环变量 for循环

list1 = [data for data in range(5)]

a_range = range(10)
# 对a_range执行for表达式
a_list = [x * x for x in a_range]
# a_list集合包含10个元素
print(a_list)

#输出
[0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64, 81]

数据过滤语法格式: 表达式 for循环 if判断

list1 = [data for data in range(5) if data > 200]

b_list = [x * x for x in a_range if x % 2 == 0]
# a_list集合包含5个元素
print(b_list)
#输出
[0 ,4 , 16, 36, 64]

多个数据同时进行推导

d_list = [(x, y) for x in range(5) for y in range(4)]
# d_list列表包含20个元素
print(d_list)

#等同于
dd_list = []
for x in range(5):
    for y in range(4):
        dd_list.append((x, y))

(二)其他推导内容

参考来源:https://www.cnblogs.com/geeksongs/p/12869795.html

1.集合推导式

集合推导式十分简单,和列表推导式是同一个用法,但是我们使用集合推倒式对列表推导式进行遍历之后,最后形成的是一个集合,而不是一个列表。

集合当中的数字是不重复的。

例子1:

 list=[1,2,54,67,2,3,5,32,2,2,4,4,4,4]
 x = {num for num in list}
 print(x)
#输出
{32, 1, 2, 3, 67, 5, 4, 54}

例子2:

#集合推导式
#获取1到1000000的偶数
x = {i for i in range(1, 10 + 1) if i % 2 == 0}
print(type(x))
print(x)
#输出结果:
<class 'set'>
{2, 4, 6, 8, 10}

2.字典推导式
字典推导是则难度大了一些,需要对key和value都要分别进行遍历,.items()方法实现的是拿出集合当中的一个键值对。

set={"a":"A","b":"B","c":"C"}
print{value:key for key,value in set.items()}
#输出
{'A': 'a', 'B': 'b', 'C': 'c'}

例子2:

dict={'名字1': 1, '名字二': 2, '名字三': 3, '名字四': 4}
x = {i : j for i, j in dict.items() if j%2==0}
print(x)
print(type(x))
#输出
{'名字二': 2, '名字四': 4}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值