主頁(yè) > 知識(shí)庫(kù) > python推導(dǎo)式的使用方法實(shí)例

python推導(dǎo)式的使用方法實(shí)例

熱門標(biāo)簽:正安縣地圖標(biāo)注app 螳螂科技外呼系統(tǒng)怎么用 400電話申請(qǐng)資格 阿里電話機(jī)器人對(duì)話 qt百度地圖標(biāo)注 電銷機(jī)器人系統(tǒng)廠家鄭州 遼寧智能外呼系統(tǒng)需要多少錢 舉辦過冬奧會(huì)的城市地圖標(biāo)注 地圖地圖標(biāo)注有嘆號(hào)

前言

推導(dǎo)式提供了更簡(jiǎn)潔高效的方法來生成序列而又不失代碼的可讀性。

定義: 推導(dǎo)式是 Python 里很有用的一個(gè)特性,它可以用一行代碼就可以創(chuàng)建一個(gè)新的序列(比如:列表,集合,字典等等)。通過這個(gè)性能,不僅可以少寫很多代碼,而且性能上也更快。

Python 里有四種推導(dǎo)式:

  • 列表推導(dǎo)式(List Comprehensions)
  • 字典推導(dǎo)式(Dictionary Comprehensions)
  • 集合推導(dǎo)式(Set Comprehensions)
  • 生成器推導(dǎo)式(Generator Comprehensions)

一、列表推導(dǎo)式(List Comprehensions)

假如你有一個(gè)列表,你想去掉該列表中的所有負(fù)數(shù),那通常的做法使用 for 循環(huán)

numbers=[1,-2,3,-4,5]
new_nums=[]
for num in numbers:
 if num>0:
  new_nums.append(num)
print(new_nums)

輸出結(jié)果:

但如果我們用列表推導(dǎo)式來實(shí)現(xiàn),那么這個(gè)過程就短得多,只需要一行代碼:

numbers=[1,-2,3,-4,5]
new_nums=[num for num in numbers if num>0]

print(new_nums)

輸出結(jié)果同上。

列表推導(dǎo)式的結(jié)構(gòu):

output_list = [expression for var in input_list if condition]

這里的 if condition 語(yǔ)句并不是必須有的。

二、字典推導(dǎo)式(Dictionary Comprehensions)

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

假如你想從一個(gè)全是數(shù)字的列表來創(chuàng)建一個(gè)字典,列表里的數(shù)字作為 key, 數(shù)字的的字符串值作為 value, 然后再某個(gè)限制條件,最終獲得你想要的字典數(shù)據(jù):

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

dict={}
for num in nums:
 if num %2 == 0:
  dict[num] = str(num)

print(dict)

輸出結(jié)果:

如果我們使用字典推導(dǎo)式,就會(huì)簡(jiǎn)潔的多:

nums=[1,2,3,4,5,6,7,8]
dict={num:str(num) for num in nums if num % 2 == 0}

print(dict)

輸出結(jié)果同上。

字典推導(dǎo)式的模板:

{key:value for (key,value) in dict if key,value satisfy condition}

三、集合推導(dǎo)式(Set Comprehensions)

集合推導(dǎo)式跟列表推導(dǎo)式差不多。就比如我們要把一個(gè)全是數(shù)字的列表中的奇數(shù)組成一個(gè)集合,用 for 循環(huán)的話:

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)

輸出結(jié)果:

如果我們使用集合表達(dá)式來表示:

numbers=[1,2,3,4,5,6,7,8]
filtered_nums={num for num in numbers if num %2 == 0}

print(filtered_nums)

輸出結(jié)果同上。

注意: 集合推導(dǎo)式除了是使用 {} 外,其他形式都跟列表推導(dǎo)式一樣。

四、生成器推導(dǎo)式(Generator Comprehensions)

生成器推導(dǎo)式(或叫生成器表達(dá)式),其結(jié)構(gòu)也跟列表表達(dá)式相似。

例如我們將數(shù)字列表中各項(xiàng)平方運(yùn)算并排除奇數(shù)項(xiàng):

def square_even(numbers):
  for number in numbers:
   if number % 2 == 0:
     yield (number * number)

numbers=[1,2,3,4,5,6]
square_numbers=square_even(numbers)

for number in square_numbers:
  print(number)

輸出結(jié)果:

使用生成器推導(dǎo)式顯示為:

numbers=[1,2,3,4,5,6]
square_numbers=(num *num for num in numbers if num % 2 ==0)

for number in square_numbers:
  print(number)

輸出結(jié)果同上。

注意: 生成器推導(dǎo)式是使用 () ,其他基本結(jié)構(gòu)跟列表推導(dǎo)式一樣。

總結(jié)

到此這篇關(guān)于python推導(dǎo)式的使用方法的文章就介紹到這了,更多相關(guān)python推導(dǎo)式使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python中的推導(dǎo)式使用詳解
  • Python列表推導(dǎo)式的使用方法
  • 基于Python列表解析(列表推導(dǎo)式)
  • python 列表推導(dǎo)式使用詳解
  • Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析
  • Python列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式用法實(shí)例分析
  • Python推導(dǎo)式簡(jiǎn)單示例【列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式】
  • Python元組 tuple的概念與基本操作詳解【定義、創(chuàng)建、訪問、計(jì)數(shù)、推導(dǎo)式等】
  • python之列表推導(dǎo)式的用法
  • Python學(xué)習(xí)筆記之列表推導(dǎo)式實(shí)例分析

標(biāo)簽:昭通 阜新 淘寶好評(píng)回訪 信陽(yáng) 興安盟 隨州 合肥 濟(jì)源

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python推導(dǎo)式的使用方法實(shí)例》,本文關(guān)鍵詞  python,推導(dǎo),式,的,使用方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python推導(dǎo)式的使用方法實(shí)例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python推導(dǎo)式的使用方法實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章