本文整理 Python 開發中高頻使用的實用技巧與慣用寫法,涵蓋字串反轉、字典/列表遍歷、字典排序、類別繼承、靈活參數傳遞、Lambda 表達式等核心主題,附完整程式碼可直接參考套用。
def reverse(text):
result = ''
index = len(text) - 1
while index >= 0:
result += text[index]
index -= 1
return result
[::-1](最 Pythonic、效能最佳)def reverse_1(text):
return text[::-1] # 步長 -1 代表反向取元素
def reverse_2(text):
temp = list(text)
temp.reverse()
return ''.join(temp)
from functools import reduce
def reverse_3(text):
return reduce(lambda x, y: y + x, text)
print(reverse_3("Hello")) # olleH
data = {"a": "apple", "b": "banana", "o": "orange"}
# 2.1 直接迭代 key
for k in data:
print("data[%s]=" % k, data[k])
# 2.2 items() 回傳 (key, value) 視圖(Python 3 建議)
for k, v in data.items():
print("data[%s]=" % k, v)
# 2.3 iteritems() 僅 Python 2;Py3 已移除,請用 items()
# for k, v in data.iteritems(): # Python 2 only
# 2.4 zip 組合 keys/values(較少用)
for k, v in zip(data.keys(), data.values()):
print("data[%s]=" % k, v)
lst = ['a', 'b', 'c']
# 3.1 直接迭代元素(最常用)
for item in lst:
print(item)
# 3.2 索引迭代
for i in range(len(lst)):
print(lst[i])
# 3.3 enumerate 同時取得索引與值(推薦)
for index, item in enumerate(lst):
print(index, item) # index 是列表索引
dic = {'a': 31, 'bc': 5, 'c': 3, 'asd': 4, 'aa': 74, 'd': 0}
# sorted 回傳列表:[(key, value), ...]
sorted_by_value = sorted(dic.items(), key=lambda d: d[1], reverse=True)
print(sorted_by_value)
# [('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]
sorted_by_key = sorted(dic.items(), key=lambda d: d[0])
# [('a', 31), ('aa', 74), ('asd', 4), ('bc', 5), ('c', 3), ('d', 0)]
class A(object):
def __init__(self):
print("testA")
class B(A):
def __init__(self):
# 方式一:顯式呼叫父類 __init__
A.__init__(self)
# 方式二:super() 呼叫父類同名方法(Python 3 推薦)
# super().__init__()
# super().parent_method()
def func2(a=1, b=2, c=3): # 預設參數
pass
def func3(*args): # 任意位置參數 -> tuple
pass
def func4(**kwargs): # 任意關鍵字參數 -> dict
pass
def calc_sum(*args):
total = 0
for i in args:
total += i
print(total)
calc_sum(1, 2, 3) # 6
calc_sum(123, 456) # 579
calc_sum() # 0
def print_all(**kwargs):
for k, v in kwargs.items():
print(k, ':', v)
print_all(a=1, b=2, c=3)
# a : 1
# c : 3
# b : 2
arg=value*args 任意位置參數**kwargs 任意關鍵字參數*args**kwargs
# 語法:lambda 參數列表: 表達式
fn = lambda x, y: x + y
print(fn(2, 3)) # 5
# 進階:閉包應用
def make_adder(x):
return lambda y: x + y
add2 = make_adder(2)
print(add2(3)) # 5 (相當於 2 + 3)
熟練掌握上述慣用寫法,能讓 Python 代碼更簡潔、可讀性更高、效能更優。建議在實務專案中優先使用切片、items()、enumerate()、sorted(key=...)、*args/**kwargs 等 Pythonic 風格。