(一)列表链式内容
参考来源: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_list = [x * x for x in a_range]
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]
print(b_list)
[0 ,4 , 16, 36, 64]
多个数据同时进行推导
d_list = [(x, y) for x in range(5) for y in range(4)]
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:
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}
|