Python 編程必備:十個高效實用技巧讓你的代碼更優雅
作者:用戶007
本文介紹的這些Python技巧只是冰山一角,但掌握了它們可以讓你寫出更簡潔、高效、可讀性更強的代碼。
1. 列表推導式 - 簡化列表操作的利器
列表推導式是Python最優雅的特性之一,可以讓你的代碼更加簡潔易讀。
基礎用法:
# 傳統方式創建平方數列表
squares = []
for i in range(10):
squares.append(i**2)
# 使用列表推導式
squares = [i**2 for i in range(10)]
帶條件的推導式:
even_squares = [i**2 for i in range(10) if i % 2 == 0]
2. 使用enumerate替代range(len())
遍歷列表需要索引時,用enumerate更加優雅。
對比示例:
names = ['Alice', 'Bob', 'Charlie']
# 傳統方式
for i in range(len(names)):
print(i, names[i])
# 更優方式
for i, name in enumerate(names):
print(i, name)
3. zip函數 - 并行迭代多個序列
names = ['Alice', 'Bob', 'Charlie']
scores = [95, 87, 91]
for name, score in zip(names, scores):
print(f"{name}的分數是{score}")
4. 字典推導式 - 快速生成字典
names = ['Alice', 'Bob', 'Charlie']
# 創建名字-長度字典
name_lengths = {name: len(name) for name in names}
5. f-string格式化字符串
Python 3.6+引入的最方便字符串格式化方式:
name = "Alice"
age = 30
print(f"{name}今年{age}歲,明年就{age+1}歲了")
6. 使用*args和**kwargs處理可變參數
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, city="New York")
7. 集合操作簡化邏輯判斷
valid_colors = {'red', 'green', 'blue'}
user_input = input("輸入顏色: ")
if user_input in valid_colors:
print("有效顏色")
else:
print("無效顏色")
8. 使用any()和all()簡化條件判斷
numbers = [1, 3, 5, 7, 9]
# 檢查是否有偶數
has_even = any(n % 2 == 0 for n in numbers)
# 檢查是否都是奇數
all_odd = all(n % 2 == 1 for n in numbers)
9. 使用collections.defaultdict處理缺失鍵
from collections import defaultdict
word_counts = defaultdict(int) # 默認值0
for word in document:
word_counts[word] += 1
10. 上下文管理器自動管理資源
# 自動文件關閉的傳統方式
with open('data.txt', 'r') as f:
data = f.read()
# 自定義上下文管理器
class Timer:
def __enter__(self):
self.start = time.time()
def __exit__(self, *args):
print(f"耗時: {time.time() - self.start:.2f}秒")
with Timer():
time.sleep(1)
結語
這些Python技巧只是冰山一角,但掌握了它們可以讓你寫出更簡潔、高效、可讀性更強的代碼。建議從列表推導式和f-string開始練習,逐步掌握其他技巧。
責任編輯:趙寧寧
來源:
Python數智工坊