每个Python开发者需要学习的9个技巧

liftword3周前 (04-07)技术文章2

Python 很容易学,但很难精通。 你可能已经写了一些脚本,做了两三个项目。但如果你想更上一层楼,你需要那些区分初学者和专业人士的 Python 技巧。

现在,让我们开始吧。

1.像专业人士一样使用列表推导式

列表推导式适用于一行代码的场景。

示例:展平列表的列表

nested_list = [[1, 2], [3, 4], [5, 6]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)  # 输出:[1, 2, 3, 4, 5, 6]

为什么这么酷:它去除了 for 循环,让你的代码更易读。

2. 不使用临时变量

大多数语言需要临时变量来交换值。Python?不需要。

示例:

a, b = 10, 20
a, b = b, a
print(a, b)  # 输出:20, 10

简单、干净,比使用第三个变量优雅得多。

3. 使用 zip()合并列表

想将两个列表合并成对?zip() 让这变得轻而易举。

示例:将名字和年龄配对

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

输出:

Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.

zip() 让你的代码更紧凑、更易读。


4.enumerate()的力量

停止使用 range(len(some_list))。enumerate() 是更干净的方式。

示例:带索引循环

languages = ["Python", "JavaScript", "Go"]

for index, lang in enumerate(languages, start=1):
    print(f"{index}. {lang}")

输出:

1. Python
2. JavaScript
3. Go

不再有 awkward for i in range(len(...)) 的麻烦。


5.使用字典推导式让代码更整洁

你见过列表推导式,但你知道字典也可以这样做吗?

示例:将列表转换为字典

fruits = ["apple", "banana", "cherry"]
fruit_dict = {fruit: len(fruit) for fruit in fruits}
print(fruit_dict)

输出:

{'apple': 5, 'banana': 6, 'cherry': 6}

当你需要快速转换数据时,这特别有用。


6.使用 collections.Counter快速计数

如果你需要计数出现次数,不要浪费时间写循环——使用 Counter。

示例:计数字符频率

from collections import Counter

word = "mississippi"
counter = Counter(word)
print(counter)

输出:

{'i': 4, 's': 4, 'p': 2, 'm': 1}

对于频率分析和快速统计来说非常完美。


7. 使用 *和 **解包

解包是一个杀手级特性,让函数调用和数据处理变得轻而易举。

示例:合并字典

dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
merged_dict = {**dict1, **dict2}
print(merged_dict)

输出:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

你也可以使用 * 将列表拆分为变量:

first, *middle, last = [1, 2, 3, 4, 5]
print(first, middle, last)  # 输出:1 [2, 3, 4] 5

这让你的代码更具灵活性。


8. 使用 breakpoint()

厌倦了通过打印变量来调试?改用 breakpoint() 吧。

示例:让调试变得简单

def add(a, b):
    breakpoint()  # 打开交互式调试会话
    return a + b

add(5, 10)

现在,当你运行脚本时,Python 会打开一个交互式调试器,让你可以实时检查变量。


9.使用 functools.lru_cache提高速度

如果你多次调用昂贵的函数,缓存可以 显著 提高性能。

示例:快速递归的记忆化

from functools import lru_cache

@lru_cache(maxsize=1000)
def fib(n):
    if n < 2:
        return n
    return fib(n-1) + fib(n-2)

原文:
https://dev.to/0x3d_site/python-one-trick-at-a-time-a-guide-for-devto-readers-hj5?bb=215474

相关文章

《三步学Python》

作者:[日]山田祥宽, [日]山田奈美 著译者:王俊编辑推荐本书以类似课堂学习的方式,通过预习、体验、理解三个步骤讲解Python的基础知识。在“预习”环节概述该节内容,在“体验”环节实际带领大家创建...

如何学好Python技术

现在python发展势头很猛,都想快速学好它,其实学任何一个语言没有太多好的秘诀,一般情况下,还是少不了你努力刻苦的样子。学好一门技术并不容易,很多人推荐学习python,在于比其他语言的约束,或者...

如何系统的学python?

我不喜欢一上来就推荐一堆参考资料的东西,那只会让初学者更迷茫。好比一个婴儿,你告诉他学会走路的方法有100种,他只会变的对走路毫无兴趣,他要的只是一种最有效的学会走路的办法,而不是100种。同样的,下...

最全Python学习路线完整版分享!!

现在大家最缺的其实不是学习资料,而是详实的学习路线规划、方向分析如果没有正确的学习路线和方向,即使有力也使不出还可能会越走越偏今天给大家总结了从入门开始六个阶段的学习路线图:1.Python基础知识和...

用笨办法学Python

这本书适合完全没学过编程,但是对编程感兴趣的人学习使用。通过52个习题,引导初学者一步一步从最简单的打印开始,逐步完成一整个项目。这本书最重要的功能就是引导你进行大量的代码练习,如果全部完成下面这些练...