自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

掌握Python核心利器:列表推導(dǎo)、字典推導(dǎo)與集合推導(dǎo)全面解析

開發(fā) 前端
在Python編程的世界里,推導(dǎo)式(Comprehensions)以其簡(jiǎn)潔、高效的特性,成為編寫優(yōu)雅代碼的不二法門。列表推導(dǎo)(List Comprehensions)、字典推導(dǎo)(Dictionary Comprehensions)和集合推導(dǎo)(Set Comprehensions)不僅能夠顯著提升代碼的可讀性,還能在處理數(shù)據(jù)時(shí)大大增強(qiáng)性能。

在Python編程的世界里,推導(dǎo)式(Comprehensions)以其簡(jiǎn)潔、高效的特性,成為編寫優(yōu)雅代碼的不二法門。列表推導(dǎo)(List Comprehensions)、字典推導(dǎo)(Dictionary Comprehensions)和集合推導(dǎo)(Set Comprehensions)不僅能夠顯著提升代碼的可讀性,還能在處理數(shù)據(jù)時(shí)大大增強(qiáng)性能。本篇推文將深入探討這三大推導(dǎo)式的精髓,通過豐富示例,讓你在實(shí)戰(zhàn)中領(lǐng)略它們的魅力。

列表推導(dǎo):簡(jiǎn)潔構(gòu)建列表的魔法

列表推導(dǎo)式是Python中構(gòu)造列表最直觀且高效的方式。它允許你在一行代碼中完成循環(huán)、條件判斷以及新元素的生成。

基礎(chǔ)示例:平方數(shù)生成

squares = [x**2 for x in range(1, 6)]
print(squares)  # 輸出:[1, 4, 9, 16, 25]

條件過濾:篩選偶數(shù)

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # 輸出:[0, 2, 4, 6, 8]

嵌套循環(huán):矩陣轉(zhuǎn)置

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
print(transposed)  # 輸出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

字典推導(dǎo):構(gòu)建映射的藝術(shù)

字典推導(dǎo)允許你快速創(chuàng)建字典,其中每個(gè)鍵值對(duì)都是根據(jù)表達(dá)式計(jì)算得出的。

基礎(chǔ)示例:字母計(jì)數(shù)

word = "comprehension"
char_count = {char: word.count(char) for char in set(word)}
print(char_count)  # 輸出:{'c': 1, 'o': 2, 'm': 1, 'p': 1, 'r': 2, 'e': 2, 'h': 1, 'n': 1, 's': 1, 'i': 1, 't': 1}

條件過濾:年齡分類

people = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}, {"name": "Charlie", "age": 35}]
age_groups = {person["name"]: "adult" if person["age"] >= 18 else "minor" for person in people}
print(age_groups)  # 輸出:{'Alice': 'adult', 'Bob': 'adult', 'Charlie': 'adult'}

集合推導(dǎo):去重與集合運(yùn)算

集合推導(dǎo)提供了創(chuàng)建集合的便捷方式,尤其擅長(zhǎng)于去重和執(zhí)行集合間的操作。

去重并平方

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_squares = {x**2 for x in numbers}
print(unique_squares)  # 輸出:{1, 4, 9, 16, 25}

交集與平方

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
common_squares = {x**2 for x in set1 & set2}
print(common_squares)  # 輸出:{9, 16}

高級(jí)技巧:嵌套與鏈?zhǔn)酵茖?dǎo)

推導(dǎo)式可以相互嵌套,甚至與條件表達(dá)式相結(jié)合,實(shí)現(xiàn)復(fù)雜的邏輯。

嵌套列表推導(dǎo):矩陣乘法

matrix_a = [[1, 2], [3, 4]]
matrix_b = [[5, 6], [7, 8]]
result = [[sum(a*b for a, b in zip(row_a, col_b)) for col_b in zip(*matrix_b)] for row_a in matrix_a]
print(result)  # 輸出:[[19, 22], [43, 50]]

鏈?zhǔn)酵茖?dǎo):復(fù)雜轉(zhuǎn)換

data = [("apple", 2), ("banana", 4), ("cherry", 1)]
fruits_sorted_by_count = sorted(
    (fruit for fruit, count in data),
    key=lambda pair: pair[1],
    reverse=True
)
print(fruits_sorted_by_count)  # 輸出:['banana', 'apple', 'cherry']

結(jié)語

列表推導(dǎo)、字典推導(dǎo)與集合推導(dǎo)是Python語言中不可或缺的精華部分,它們以簡(jiǎn)潔而強(qiáng)大的表達(dá)形式,極大提升了編碼效率和代碼的可讀性。通過上述示例,希望能幫助你深入理解這三大推導(dǎo)式的應(yīng)用,讓它們成為你編程旅途中的得力助手。在日常編程實(shí)踐中不斷探索,你會(huì)發(fā)現(xiàn)更多巧妙的使用場(chǎng)景,進(jìn)一步提升代碼的性能與美感。

責(zé)任編輯:華軒 來源: 測(cè)試開發(fā)學(xué)習(xí)交流
相關(guān)推薦

2024-11-28 07:00:00

Python列表推導(dǎo)式集合推導(dǎo)式

2025-01-03 08:48:20

列表推導(dǎo)式Python編程

2021-03-02 09:35:33

Python循環(huán)開發(fā)

2024-04-24 11:27:16

字典推導(dǎo)式Python

2024-11-27 06:46:47

Python列表推導(dǎo)式嵌套邏輯

2024-12-17 09:00:00

lambda函數(shù)Python

2024-05-20 12:00:00

Python列表推導(dǎo)式

2024-11-21 06:00:00

Python列表推導(dǎo)式

2024-05-20 08:30:00

Python編程

2021-03-03 12:55:30

Python列表推導(dǎo)式代碼

2024-02-21 20:43:02

Python列表推導(dǎo)式

2023-04-28 07:42:02

2023-10-04 00:43:46

推導(dǎo)式Python

2024-12-26 08:58:55

C++decltype表達(dá)式

2023-12-07 19:33:09

Python推導(dǎo)式

2024-10-28 17:06:50

2024-01-17 23:10:59

C++函數(shù)模板開發(fā)

2024-09-25 14:16:35

2024-02-22 09:25:09

Python字典推導(dǎo)式開發(fā)

2024-02-19 08:11:40

C++編程尾返回類型推導(dǎo)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)