你没有使用但应该使用的 10 大 Python 函数

举报
Q神 发表于 2023/06/16 22:25:46 2023/06/16
【摘要】 嘿嘿,你是温文尔雅的 Pythonistas 和 code-slinging pythoneers!🎩 准备好将您的 Python 争论技巧提升到一个新的水平了吗?Python 之神赋予了我们比霍格沃茨分院帽更神奇的功能,现在是我们释放它们真正潜力的时候了。🧙所以,拿一杯蛇大小的咖啡☕,戴上你最好的印第安纳琼斯帽子,让我们开始挖掘这个 Python 优点的宝库。🐍1.难以捉摸enume...

嘿嘿,你是温文尔雅的 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.")

免责声明📢:

  1. 在大型数据集上使用itertools.chain()和之类的函数时要小心。collections.Counter()它们可能比自助餐中的大象消耗更多的内存。🐘
  2. 不要过度使用functools.lru_cache()。这就像一台时间机器——太多的乱七八糟会产生意想不到的后果。
  3. 虽然defaultdict()它很神奇,但请确保你真的想为你的字典添加一个新键,否则它可能会像 Rapunzel 的头发一样不受控制地生长。

结论🚀

恭喜,您现在已经掌握了 10 个 Python 函数,它们和邓布利多的魔杖一样有用。施放法术喜欢enumerate()毫不费力地计算,并lru_cache()加快你的功能。明智地使用它们,否则您可能会发现自己在没有地图的 Python 丛林中。


关注我的博客,您将在其中获得提示、技巧和挑战,以保持您的技能敏锐。记得关注我哦!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。