你没有使用但应该使用的 10 大 Python 函数
嘿嘿,你是温文尔雅的 Pythonistas 和 code-slinging pythoneers!🎩 准备好将您的 Python 争论技巧提升到一个新的水平了吗?Python 之神赋予了我们比霍格沃茨分院帽更神奇的功能,现在是我们释放它们真正潜力的时候了。🧙
所以,拿一杯蛇大小的咖啡☕,戴上你最好的印第安纳琼斯帽子,让我们开始挖掘这个 Python 优点的宝库。🐍
1.难以捉摸enumerate()
🗂
有没有感觉自己像马拉松选手一样数着自己被圈的次数?好吧,有了enumerate()
你就不必了,因为这种美感为你的循环增加了一个计数器。看马,没有手!
for index, value in enumerate(["apple", "banana", "cherry"], start=1):
print(f"The index is {index} and the value is {value}")
2.zip()
列出你的清单🤐
约会的两个列表,但你是第三轮?使用zip()
,您可以将它们压缩在一起并按原样发送。谈论成为僚机!
names = ["Batman", "Superman", "Wonder Woman"]
superpowers = ["Rich", "Strong", "Lasso of Truth"]
for hero, power in zip(names, superpowers):
print(f"{hero} is really just super {power}!")
3. collections.Counter()
— 人群驯兽师📊
你有太多的元素无法计算吗?别担心!Counter()
将帮助您弄清楚谁是您列表中的派对动物。
from collections import Counter
party_list = ["Alice", "Bob", "Alice", "Eve", "Bob", "Eve", "Alice"]
print(Counter(party_list))
# Output: Counter({'Alice': 3, 'Bob': 2, 'Eve': 2})
4. functools.lru_cache()
— 时间旅行者⏱
您的功能执行时间是否比等待树懒完成马拉松比赛的时间更长?只需在您的函数上方添加@lru_cache
即可使其比 The Flash 更快。
from functools import lru_cache
@lru_cache
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
5. 全部上车any()
和all()
快递🚂
无法决定今晚是否应该外出?让你的优柔寡断帮助你any()
。all()
friends_going = [False, False, True, False]
print(any(friends_going)) # Output: True
chores_done = [True, True, True, True]
print(all(chores_done)) # Output: True
6. 使用itertools.chain()
🚲 变得圆滑
将您的列表像自行车链条一样链接起来itertools.chain()
,并顺利地穿过您的数据集。
from itertools import chain
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
combined = list(chain(list1, list2))
print(combined) # Output: [1, 2, 3, 'a', 'b', 'c']
7. 大defaultdict()
魔术师🎩
厌倦了不请自来的 KeyError 出现?让它消失defaultdict()
。现在,每次您尝试访问不存在的密钥时,defaultdict()
都会为您创建它。阿布拉-卡-达布拉!
from collections import defaultdict
d = defaultdict(int)
print(d["new_key"]) # Output: 0, and "new_key" is now a key in the dict
reversed()
8. 用🔄 振作起来
您是否知道无需 180 度大转弯也可以扭转局面?reversed()
在不更改原始列表的情况下检查您的列表!
original_list = [1, 2, 3, 4, 5]
for item in reversed(original_list):
print(item, end=' ') # Output: 5 4 3 2 1
9. 不要迷路,使用pathlib.Path()
🗺
浏览文件和目录是否让您抓狂?收起那个指南针,因为它pathlib.Path()
是目录导航的正北方向。
from pathlib import Path
# Navigate to your home directory and create a file there.
home = Path.home()
file = home / "treasure_map.txt"
file.touch()
print(f"Your treasure map is located at: {file}")
10.else
循环中被低估的人🎢
你知道循环有一个秘密助手叫else
吗?它在循环结束时执行,就像蝙蝠侠在战斗结束后现身抢功劳一样。
for i in range(5):
if i == 10:
break
else:
print("Loop completed without a 'break'. Batman approves.")
免责声明📢:
- 在大型数据集上使用
itertools.chain()
和之类的函数时要小心。collections.Counter()
它们可能比自助餐中的大象消耗更多的内存。🐘 - 不要过度使用
functools.lru_cache()
。这就像一台时间机器——太多的乱七八糟会产生意想不到的后果。 - 虽然
defaultdict()
它很神奇,但请确保你真的想为你的字典添加一个新键,否则它可能会像 Rapunzel 的头发一样不受控制地生长。
结论🚀
恭喜,您现在已经掌握了 10 个 Python 函数,它们和邓布利多的魔杖一样有用。施放法术喜欢enumerate()
毫不费力地计算,并lru_cache()
加快你的功能。明智地使用它们,否则您可能会发现自己在没有地图的 Python 丛林中。
关注我的博客,您将在其中获得提示、技巧和挑战,以保持您的技能敏锐。记得关注我哦!
- 点赞
- 收藏
- 关注作者
评论(0)