- 列表推导式的方括号内包含以下内容:
一个表达式,后面跟一个 for 子句,然后,是零个或多个 for 或 if子句。结果是新的列表,由对表达式依据后面的 for 和 if 子句的内容进行求值计算而得出。
将两个列表中不相等的元素组合起来的不同写法:
list_1 = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(list_1)
等价于:
list _1 = []
for x in [1,2,3]:
for y in [3,1,4]:
if x != y:
list _1.append((x, y))
print(list_1)
注意:
- 上面两段代码中,for 和 if 的顺序相同。
- 表达式是元组(例如上例的 (x, y))时,必须加上括号
一些例子:
from math import pi
vec = [-4, -2, 0, 2, 4]
list_1 = [x * 2 for x in vec] # 条件:x * 2
list_2 = [x for x in vec if x >= 0] # 条件:x >= 0
list_3 = [abs(x) for x in vec] # x的绝对值,即abs(x)
print("list_1 =", list_1)
print("list_2 =", list_2)
print("list_3 =", list_3)
freshfruit = [' banana', ' loganberry ', 'passion fruit ']
list_4 = [weapon.strip() for weapon in freshfruit]
# str.strip():省略字符串头部和尾部的空格,不能省略中间的空格
print("list_4 =", list_4)
list_5 = [(x, x**2) for x in range(6)] # 列表嵌套元组
print("list_5 =", list_5)
list_6 = [str(round(pi, i)) for i in range(1, 6)]
print("list_6 =", list_6)
'''
round()函数是一个四舍五入的函数,但是有坑,具体看这两个链接:
https://www.runoob.com/python/func-number-round.html
https://www.runoob.com/w3cnote/python-round-func-note.html
'''
- 本文章是我看python文档后自己整理的
本文介绍了Python列表推导式的概念和用法,通过实例展示了如何使用列表推导式创建新列表,包括条件筛选和嵌套操作。同时,文章提供了多个示例,如计算列表元素的平方、过滤正数、取绝对值以及字符串处理等,帮助读者深入理解这一高效的数据处理技巧。
696

被折叠的 条评论
为什么被折叠?



