python當中的生成式及應用

2021-10-05 08:40:33 字數 2882 閱讀 2032

1.列表生成式及其基本應用

列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。

集合生成式、字典生成式、列表生成式格式都一樣,就看最後向生成什麼,就用什麼括號
格式:[expression for i in 序列 if…]==表示式+迴圈+條件

列表生成式的應用:

一般方法

s ='51 500 1000'

li =

for item in s.split():

int(item)

)print

(li)

列印結果[51

,500

,1000

]使用列表生成式

s ='51 500 1000'

li =

k,a,b =

[int

(item)

for item in s.split()]

print

(k,a,b)

51500

1000

生成乙個列表,各項分別為1~10的平方[12,22,32,42,…,10**2]

li =

for i in

range(1

,11):

2)列印結果

print

(li)[1

,4,9

,16,25

,36,49

,64,81

,100

]使用生成式

print

([i **

2for i in

range(1

,11)]

)列印結果[1

,4,9

,16,25

,36,49

,64,81

,100

]

生成乙個列表,列表元素為1~10之間的所有偶數各自的平方

print

([i **

2for i in

range(1

,11)if i %2==

0])列印結果[4

,16,36

,64,100

]

找出1~num之間的所有質數

def

isprime

(num)

: isprime判斷是不是素數

for i in

range(2

,num)

:1不是質數也不是合數

if num % i ==

0: 判斷在2

-num之間的數值是否可以被num整除,是就是假

return

false

else

: 不是為真

return

true

print

([i for i in

range(1

,20)if isprime(i)])

列印結果[1

,2,3

,5,7

,11,13

,17,19

]

key --> upper(鍵大寫)

列如:d = dict(a=1,b=2) 使k值變為大寫字母

方法一

d =

dict

(a=1

,b=2

)new_d =

for i in d:

new_d[i.upper()]

= d[i]

print

(new_d)

列印結果

方法二:生成式

d =

dict

(a=1

,b=2

)new_d =

print()

列印結果

大小寫key值合併,統一以小寫輸出

方法一

d=

dict

(a=2

,b=4

,c=8

,a=5

,b=6

)new_d =

for k,v in d.items():

lower_k = k.lower(

)if lower_k not

in new_d:

new_d[lower_k]

= v else

: new_d[lower_k]

+= v

print

(new_d)

列印結果

方法二:生成式

d=

dict

(a=2

,b=4

,c=8

,a=5

,b=6

)new_d =

#0表示若沒有找到k.lower對應的value值時用0替代

print()

列印結果

get() 函式返回指定鍵的值,如果值不在字典中返回預設值

語法get()方法語法:

dict

.get(key, default=

none

)

引數

key – 字典中要查詢的鍵。

default – 如果指定鍵的值不存在時,返回該預設值。

返回指定鍵的值,如果值不在字典中返回預設值none

python列表生成式應用案例

什麼是列表生成式?列表生成式可以帶來什麼好處,應用案例為你解答!列表生成式呢 顧名思義,列表生成式就是乙個用來生成列表的特定語法形式的表示式。例如我們需要生成乙個列表,由0到9組成,那我們就可以這樣寫 list1 0,1,2,3,4,5,6,7,8,9 感覺,手動寫這10個數字還好,但是,有時候,測...

python列表生成式及相關操作

乙個需求,員工的稅前工資儲存在乙個叫salty的列表中,現在需要把所有員工的稅後工資計算出來,並存放到乙個aftertaxsalty的列表中,假設稅率為10 1.正常的操作 salty 10000,9000,12000,14500,13000 aftertaxsalty list for one i...

python 列表生成式,字典生成式

生成乙個列表,列表元素分別為 1 1,2 2.9 9 import math li for i in range 1,10 print li print i i for i in range 1,10 print i i for i in range 1,10 if i 2 0 找出1 10之間的所...