Python的列表,集合,字典生成式

2021-09-02 15:30:30 字數 3094 閱讀 5521

experssion(或者函式) ------ for item1 in 序列 if 判斷語句

--------------------------------------for item2 in 序列 if 判斷語句

-------------------------------------for item3 in 序列 if 判斷語句

案例1:

生成乙個列表, 列表元素分別為[…n**n]

print([i**i for i in range(1,8)])
案例2:找出1~10之間所有奇數, 並且返回乙個列表, (所有的奇數轉換為字串)

print([str(i) for i in range(1,11,2)])
案例3:找出1~100之間所有奇數, 並且返回乙個列表,(如果能被3整除, 返回該數的平方, 否則返回該數的三次方)

print([i**2 if i%3==0 else i**3 for i in range(1,101,2)])
案例4:給定乙個列表li = [2,3,4,5,6,3,1,4,5](如果是偶數返回0, 如果是奇數返回1)

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

print([0 if i%2==0 else 1 for i in li ])

案例5:找出1~100之間所有的質數

def isprime(num):

for i in range(2,num):

if num%i==0:

return false

else:

return true

print([i for i in range(2,101) if isprime(i)])

li=[

[1,2,3],

[2,3,4],

[4,5,6]

]resli=

for item1 in li:

for item2 in item1:

print(resli)

li=[

[1,2,3,4],

[2,3,4,5],

[4,5,6,6]

]print([[row[i] for row in li] for i in range(4)])

2.內建函式zip

*li: 解包zip:1).打包函式, 用於將可迭代的物件作為引數, 將物件中對應的元素打包成乙個個元組, 然後返回由這些元組組成的列表。

2).如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同, 利用 * 號操作符,可以將元組解壓為列表

3). zip 方法在 python 2 和 python 3 中的不同: 在 python 3.x 中為了減少記憶體,zip( ) 返回的是乙個物件。

[ key:values for item1 in 序列 if 判斷語句 

for item2 in 序列 if 判斷語句

for item3 in 序列 if 判斷語句 ]

案例1:假設有20個學生,學生分數在60-100之間,篩選出成績在90分以上的學生

import random

# stuinfo={}

# for i in range(20):

#第一種寫法

# name='westos'+str(i)

# score=random.randint(60,100)

# stuinfo[name]=score

#第二種寫法

#stuinfo['westos'+str(i)]=random.randint(60,100)

#最快捷簡便的方法

stuinfo= #字典生成式

print(stuinfo)

#篩選出高於90的人

#第一種寫法

# highscore={}

# for name,score in stuinfo.items():

# if score>90:

# highscore[name]=score

# print(highscore)

#第二種寫法

print()

print()

print()

d=

print()

同列表一樣,只是將[ ]變為了

也同字典相同,只不過傳的是乙個引數

s=

#集合生成式

print()

#字典生成式

print()

from  collections import iterable

li=['westos',8,'hello','python']

for i in li:

print(i)

print(isinstance(li,iterable)) #判斷是否可以for迴圈

Python列表生成式 集合生成式 字典生成式練習

列表生成式 1 生成乙個列表,列表元素分別為 12,22,32,n2 2 找出1 10之間的所有偶數,並返回乙個列表 包含以這個偶數為半徑的圓的面積 3 找出1 100之間所有的質數 def isprime num for i in range 2,num if num i 0 return fal...

python生成式 列表 字典 集合

python的3類生成式 列表生成式 字典生成式 集合生成式 1 python列表生成式 my data 1,2,3 4,5,6 7,8,9 print my data s my data rows to keep row for row in my data if row 2 5 print ro...

python列表 元組 字典 集合

列表list 用 表示,list是一種有序的集合,可以隨時新增和刪除其中的元素。元組tuple 用 表示,和列表類似,元組也是一種有序列表,雖然tuple和list非常之類似,但是list初始化之後使可以改變的,但是,元組一旦初始化之後就不可以改變。這點與python中的字串類似,所以我們說元組和字...