Python的表达力远比你想象的强。一行代码可以顶一个函数、一个脚本、甚至一个工具。
a = 1b = 2# 常规写法(需要临时变量)tmp = aa = bb = tmp# 一行代码a, b = b, a# 运行结果:交换前: a=1, b=2交换后: a=2, b=1
# 1-10的平方squares = [x**2 for x in range(1, 11)]print(f'1-10平方: {squares}')# 筛选偶数evens = [x for x in range(20) if x % 2 == 0]print(f'偶数: {evens}')# 构建字典word_len = {word: len(word) for word in ["hello", "world", "python"]}print(f'单词长度: {word_len}')# 运行结果:1-10平方: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]偶数: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]单词长度: {"hello": 5, "world": 5, "python": 6}
# 字典按值排序my_dict = {"apple":50, "banana":30, "cherry":80}sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1], reverse=True))# → {"cherry":80, "apple":50, "banana":30}# 多维排序students = [("Tom",85), ("Jerry",92), ("Mike",85)]sorted(students, key=lambda x: (-x[1], x[0]))# → [("Jerry",92), ("Mike",85), ("Tom",85)
# 导入包 from collections import CounterCounter(["apple","banana","apple","orange","banana","apple"])# → Counter({"apple": 3, "banana": 2, "orange": 1})Counter(lst).most_common(3) # TOP3# → [("apple", 3), ("banana", 2), ("orange", 1)]
# 分组函数group_by = lambda lst, n:[lst[i:i+n] for i in range(0, len(lst), n)]group_by([1,2,3,4,5,6,7],3)# → [[1,2,3], [4,5,6], [7]]# 按长度排序sorted(["python","hi","ok","ai"], key=lambda x: len(x))# → ["hi", "ok", "ai", "python"]
nested = [[1,2,3],[4,5,6],[7,8,9]]flat = [item for row in nested for item in row]# → [1, 2, 3, 4, 5, 6, 7, 8, 9]
d1 = {"a":1,"b":2}d2 = {"b":99,"c":3}merged = {**d1, **d2}# → {"a": 1, "b": 99, "c": 3}
gen = (x**2 for x in range(10**6)) # 不占内存,按需计算
# HTTP服务python3 -m http.server 8000 # 当前目录启动HTTP服务
password = "".join(random.choices("abcdefghijklmnopqrstuvwxyz0123456789", k=16))
场景 | 一行代码 |
交换变量 | a, b = b, a |
列表筛选 | [x for x in lst if cond] |
字典排序 | dict(sorted(d.items(), key=lambda x: x[1], reverse=True)) |
统计频率 | Counter(lst) |
合并字典 | {**d1, **d2} |
展开嵌套 | [item for row in nested for item in row] |
HTTP服务 | python3 -m http.server |
-------------------------它是数字世界里的一把杀猪刀
却总能巧夺天工
它的世界是纯粹0、1组合
却总能创造无尽幻想
......
本公众号关注数据价值分析、编程学习,将不定期更新社会热点数据分析结果、编程技巧,分享数据分析工具、方法、学习等内容,欢迎有兴趣的小伙伴加入。