python 列表解析

2021-08-09 15:56:30 字數 2504 閱讀 3673

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

col2=[row[1] for row in m] #獲取列表m的每個元素的第二個元素的值組成的列表

print(col2)

print([row[1]+1

for row in m]) #獲取列表m的每個元素的第二個元素+1的值組成的列表

print([row[1] for row in m if row[1]%2==0]) #獲取列表m的每個元素的第二個元素且是偶數的值組成的列表

print([m[i][i] for i in [0,1,2]]) #獲取m[0,0],m[1,1],m[2,2]的值組成的列表

print([c*2

for c in

'spam']) #獲取spam每個位元組*2後點值組成的列表

列表解析語法也可以用來建立產生所需結果的生成器
m=[[1,2,3],[4,5,6],[7,8,9]]

g=(sum(row) for row in m)

print(type(g)) #g是乙個生成器generator,內容是m的三個元素的子元素相加的和

print(next(g)) #m[0][0]+m[0][1]+m[0][2]=6

print(next(g)) #m[1][0]+m[1][1]+m[1][2]=6

print(next(g)) #m[2][0]+m[2][1]+m[2][2]=6

print(next(g)) #超出範圍,報異常

m=[[1,2,3],[4,5,6],[7,8,9]]
列表解析語法可以用來建立集合
m=[[1,2,3],[4,5,6],[7,8,9]]
print()

#生成乙個集合,內容是m的三個元素的子元素相加的和

列表解析語法可以用來建立字典
m=[[1,2,3],[4,5,6],[7,8,9]]
print()

#生成乙個字典

列表,集合,字典都可以用解析來建立
print([ord(x) for x in 'spaam'])   #[115, 112, 97, 97, 109]

print() # 集合會去重

print() # 集合鍵值重複執行更新操作

擴充套件的列表解析語法
lines=[line for line in 

open('e:/kangyujiao/test.txt') if line[0]=='b'] #每行第乙個字元是b的返回

l=[x+y for x in 

'abc'

for y in

'lmn'] #巢狀迴圈l=['al', 'am', 'an', 'bl', 'bm', 'bn', 'cl', 'cm', 'cn']

#高階#先找出偶數,然後求平方

res=[x**2 for x in range(5) if x%2==0]

res=list(map(lambda x:x**2, filter(lambda x:x%2==0, range(5))))

#for巢狀

res=[(x,y) for x in range(5) if x%2==0 for y in range(5) if y%2==1]

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

n=[[2,2,2],[3,3,3],[4,4,4]]

res=[m[row][col]*n[row][col] for row in range(3) for col in range(3)]

#[2, 4, 6, 12, 15, 18, 28, 32, 36]

res=[[m[row][col]*n[row][col] for col in range(3)] for row in range(3)]

#[[2, 4, 6], [12, 15, 18], [28, 32, 36]]

#列表解析能夠作為一種選擇操作來使用

res=

listoftuple=[('bob',35,'mgr'),('mel',40,'dev')]

res=[age for (name, age, job) in listoftuple]   #[35, 40]

res=list(map(lambda x: x[1], listoftuple))   #[35, 40]

python列表解析

列表解析是乙個列表對映出另乙個列表,它的基本形式是乙個方括號裡面包含乙個for語句對乙個iterable物件迭代 expression for target1 in iterable1 if condition1 for targetn in iterablen if conditionn 上面是列...

Python列表解析

語法 1.expression for iter val in iterable 2.expression for iter val in iterable if cond expr l i 2 for i in range 1,11 print l 1,4,9,16,25,36,49,64,81,...

python 列表解析

列表解析 list comprehensions 表示式 expression for iter val in iterable if cond expr print x,y for x in 1 2 for y in 3 4 print x,y for x in 1 2 for y in 3 x ...