首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 實用技巧大全:字串反轉、字典遍歷、列表操作、排序與進階參數傳遞

     編輯:更多程式設計知識

本文整理 Python 開發中高頻使用的實用技巧與慣用寫法,涵蓋字串反轉、字典/列表遍歷、字典排序、類別繼承、靈活參數傳遞、Lambda 表達式等核心主題,附完整程式碼可直接參考套用。

1. 字串反轉三種經典寫法

1.1 迴圈累加(教學示意,效能較差)

def reverse(text):
    result = ''
    index = len(text) - 1
    while index >= 0:
        result += text[index]
        index -= 1
    return result

1.2 切片語法 [::-1](最 Pythonic、效能最佳)

def reverse_1(text):
    return text[::-1]  # 步長 -1 代表反向取元素

1.3 列表 reverse() + join()

def reverse_2(text):
    temp = list(text)
    temp.reverse()
    return ''.join(temp)

1.4 reduce + lambda(函數式風格)


from functools import reduce
def reverse_3(text):
    return reduce(lambda x, y: y + x, text)

print(reverse_3("Hello"))  # olleH

2. 字典遍歷四種方法


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)

3. 列表遍歷三種常見寫法


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 是列表索引

4. 字典排序實用技巧

4.1 依 value 由大到小排序


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)]

4.2 依 key 排序(預設升冪)


sorted_by_key = sorted(dic.items(), key=lambda d: d[0])
# [('a', 31), ('aa', 74), ('asd', 4), ('bc', 5), ('c', 3), ('d', 0)]

5. 類別繼承:子類呼叫父類建構式與同名方法


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()

6. 靈活參數傳遞:*args、**kwargs 完整解析

6.1 三種參數形式


def func2(a=1, b=2, c=3):      # 預設參數
    pass

def func3(*args):               # 任意位置參數 -> tuple
    pass

def func4(**kwargs):            # 任意關鍵字參數 -> dict
    pass

6.2 *args 實例:可變參數加總


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

6.3 **kwargs 實例:關鍵字參數列印


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

6.4 參數定義順序規則(必須遵守)

  1. 位置參數(無預設值)
  2. 預設參數 arg=value
  3. *args 任意位置參數
  4. **kwargs 任意關鍵字參數

6.5 呼叫時參數綁定優先順序

  1. 依位置對應無預設值參數
  2. 依關鍵字名稱對應指定參數
  3. 多餘位置參數打包給 *args
  4. 多餘關鍵字參數打包給 **kwargs

7. Lambda 表達式:匿名函數快速上手


# 語法: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 風格。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved