本文来源公众号“Python当打之年”,仅用于学术分享,侵权删,干货满满。
原文链接:https://mp.weixin.qq.com/s/1DPMijZ3wZlXJWiRU4Ktug
收藏起来吧,方便后续学习和工作!
本期给大家整理了 30个常用Python列表推导式,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。
1. 生成数字序列
numbers = [x for x in range(10)]
# [0, 1, 2, ..., 9]
2. 生成平方列表
squares = [x**2 for x in range(10)]
# [0, 1, 4, ..., 81]
3. 生成字典
keys = ["a", "b", "c"]
values = [1, 2, 3]
my_dict = {k: v for k, v in zip(keys, values)}
# {"a": 1, "b": 2, "c": 3}
4. 过滤偶数
evens = [x for x in range(10) if x % 2 == 0]
5. 过滤非空字符串
strings = ["hello", "", "world", None]
non_empty = [s for s in strings if s]
6. 字符串转大写
words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]
7. 字符串长度计算
words = ["apple", "banana", "cherry"]
lengths = [len(word) for word in words]
# [5, 6, 6]
8. 类型转换
nums_str = ["1", "2", "3"]
nums = [int(num) for num in nums_str]
# [1, 2, 3]
9. 条件表达式
values = [5, 10, 15, 20]
labels = ["High" if x > 10 else "Low" for x in values]
10. 二维列表展开
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [num for row in matrix for num in row]
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
11. 生成笛卡尔积
colors = ["red", "green"]
sizes = ["S", "M"]
products = [(color, size) for color in colors for size in sizes]
12. 多条件筛选
numbers = [x for x in range(20) if x % 2 == 0 if x % 3 == 0]
13. 排除特定元素
data = [1, 2, 3, None, 4, "error", 5]
clean_data = [x for x in data if isinstance(x, int)]
# [1, 2, 3, 4, 5]
14. 展开嵌套列表
nested_list = [[1, 2], [3, 4], [5, 6]]
[item for sublist in nested_list for item in sublist]
15. 过滤字典值
original = {"a": 1, "b": 2, "c": 3}
filtered = {k: v for k, v in original.items() if v > 1}
16. 字符串反转
[''.join(reversed(word)) for word in ['hello', 'world', 'python']]
17. 读取文件行并过滤
lines = [line.strip() for line in open("data.txt") if line.startswith("A")]
18. 提取特定列(CSV)
csv_data = "1,John\n2,Jane\n3,Doe"
names = [row.split(",")[1] for row in csv_data.split("\n")]
19. 结合 enumerate
words = ["apple", "banana", "cherry"]
indexed = [(i, word) for i, word in enumerate(words)]
20. 使用 zip
list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
combined = [(x, y) for x, y in zip(list1, list2)]
# [(1, "a"), (2, "b"), (3, "c")]
21. 调用函数处理元素
defsquare(x):
return x ** 2
squares = [square(x) for x in range(5)]
# [0, 1, 4, 9, 16]
22. 生成二维列表
matrix = [[i * j for j in range(3)] for i in range(3)]
# [[0, 0, 0], [0, 1, 2], [0, 2, 4]]
23. 转置矩阵
matrix = [[i * j for j in range(3)] for i in range(3)]
# [[0, 0, 0], [0, 1, 2], [0, 2, 4]]
24. 三元表达式
numbers = [1, 2, 3, 4]
result = ["Even" if x % 2 == 0 else "Odd" for x in numbers]
25. 多条件分支
values = [12, 5, 20, 3]
categories = ["High" if x > 10 else "Low"if x > 5 else "Very Low" for x in values]
26. 生成素数列表
n = 20
primes = [x for x in range(2, n) if all(x % y != 0 for y in range(2, int(x**0.5)+1))]
27. 字符串处理
sentence = "Hello World Python"
word_lengths = [len(word) for word in sentence.split()]
# [5, 5, 6]
28. 字典键值反转
original = {"a": 1, "b": 2, "c": 3}
reversed_dict = {v: k for k, v in original.items()}
# {1: "a", 2: "b", 3: "c"}
29. 生成器表达式转列表
gen = (x**2 for x in range(5))
squares = list(gen)
# [0, 1, 4, 9, 16]
30. 使用 if-else 在表达式内
numbers = [1, 2, 3, 4]
adjusted = [x * 2 if x % 2 == 0 else x for x in numbers]
# [1, 4, 3, 8]
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

270

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



