python推導式的使用方法例項

2022-09-26 00:24:13 字數 2038 閱讀 3181

推導式提供了更簡潔高效的方法來生成序列而又不失**的可讀性。

定義:推導式是 python 裡很有用的乙個特性,它可以用一行**就可以建立乙個新的序列(比如:列表,集合,字典等等)。通過這個效能,不僅可以少寫很多**,而且效能上也更快。

python 裡有四種推導式:

假如你有乙個列表,你想去掉該列表中的所有負數,那通常的做法使用 for 迴圈

numbers=[1,-2,3,-4,5]

new_nums=

for num in numbers:

if num>0:

new_nums.append(num)

print(new_nums)

輸出結果:

但如果我們用列www.cppcns.com表推導式來實現,那麼這個過程就短得多,只需要一行**:

numbers=[1,-2,3,-4,5]

new_nums=[num for num in numbers if num>0]

print(new_nums)

輸出結果同上。

列表推導式的結構:

output_list = [expression for var in input_list if condition]

這裡的if condition語句並不是必須有的。

跟列表推導式一樣,通過同樣方式生成字典的方法,就是字典推導式。

假如你想從乙個全是數字的列表來建立乙個字典,列表裡的數字作為 key, 數字的的字串值作為 value, 然後再某個限制條件,最終獲得你想要的字典資料:

nums=[1,2,3,4,5,6,7,8]

dict={}

for num in nums:

if num %2 == 0:

dict[num] = str(num)

print(dict)

輸出結果:

如果我們使用字典推導式,就會簡潔的多:

nums=[1,2,3,4,5,6,7,8]

dict=

print(

輸出結果同上。

字典推導式的模板:

集合推導式跟列表推導式差不多。就比如我們要把乙個全是數字的列表中的奇數組成乙個集合,用 for 迴圈的話:

numbers=[1,2,3,4,5,6,7,8]

filtered_nums=set()

for num in numbers:

if num %2 == 0:

filtered_nums.add(num)

print(filtered_nums)

輸出結果:

如果我們使用集合表示式來表示:

numbers=[1,2,3,4,5,6,7,8]

filtered_nums=

print(filtered_nums)

輸出結果同上。

注意:集合推導式除了是使用 {}程式設計客棧 外,其他形式都跟列表推導式一樣。

生成器推導式(或叫生成器表示式),其結構也跟列表表示式相似。

例如我們將數字列表中各項平方運算並排除奇數項:

def square_even(numbers):

for number in numbers:

if number % 2 == 0:

yield (number * number)

numbers=[1,2,3,4,5,6]

squwww.cppcns.comare_numbers=square_even(numbers)

for number in square_numbers:

print(number)

輸出結果:

使用生成器推導式顯示為:

numbers=[1,2,3,4,5,6]

square_numbwww.cppcns.comers=(num *num for num in numbers if num % 2 ==0)

for number in square_numbers:

print(number)

輸出結果同上。

注意: 生成器推導式是使用 () ,其他基本結構跟列表推導式一樣。

Python列表推導式的使用方法

1.列表推導式書寫形式 表示式 for 變數 in 列表 或者 表示式 for 變數 in 列表 if 條件 2.舉例說明 複製 如下 usr kfaypplbin python coding utf 8 li 1,2,3,程式設計客棧4,5,6,7,8,9 print x 2 for x in l...

列表推導式的使用方法

列表推導式 語法 1 結合range 函式使用,快速生成整數列表 簡單 list1 i for i in range 1,11 解說 for in 使用的是for迴圈,遍歷range 1,11 函式生成的1 10數字,開頭的i表示1 10這10個數字,中括號表示列表 將1 10的每個資料存放到該列表...

python列表推導式使用

列表推導式 alist 一般的操作方式 for x in range 30 print alist alist x x for x in range 30 使用列表推導式,形式上更加簡潔 print alist alist 一般的操作方法 for x in freshfruit print alis...