當前位置:首頁 » 編程語言 » python嵌套list

python嵌套list

發布時間: 2022-11-25 19:26:00

A. python 嵌套list

defiseven(l):
foriinl:
ifi%2:
returnFalse
returnTrue

defonly_evens(ll):
r=[]
foriinll:
ifiseven(i):
r.append(i)
returnr

printonly_evens([[1,2,4],[4,0,6],[22,4,3],[2]])

Python 2.7 執行結果

[[4, 0, 6], [2]]


其中 iseven 函數判斷 list 是不是都是偶數

B. Python 嵌套的列表推導式怎麼理解的呢

5.1.4. 嵌套的列表推導式
列表解析中的第一個表達式可以是任何錶達式,包括列表解析。
考慮下面有三個長度為 4 的列表組成的 3x4 矩陣:
>>> matrix = [
... [1, 2, 3, 4],
... [5, 6, 7, 8],
... [9, 10, 11, 12],
... ]
現在,如果你想交換行和列,可以用嵌套的列表推導式:
>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
像前面看到的,嵌套的列表推導式是對 for 後面的內容進行求值,所以上例就等價於:
>>> transposed = []
>>> for i in range(4):
... transposed.append([row[i] for row in matrix])
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
反過來說,如下也是一樣的:
>>> transposed = []
>>> for i in range(4):
... # the following 3 lines implement the nested listcomp
... transposed_row = []
... for row in matrix:
... transposed_row.append(row[i])
... transposed.append(transposed_row)
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
在實際中,你應該更喜歡使用內置函數組成復雜流程語句。對此種情況 zip() 函數將會做的更好:
>>> list(zip(*matrix))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

C. Python中嵌套list使用append的問題

你這樣寫代碼會把腦袋繞暈
請舉一個有點實際意義的例子(用有意義的變數名)

D. list可以嵌套嗎 python

可以
>>> a=[]
>>> a.append(a)
>>> a
[[...]]

E. python 將兩個list合並成為一個嵌套的list

1可以使用"+"號完成操作
輸出為:
[1, 2, 3, 8, 'google', 'com']
2.使用extend方法

輸入相同
3使用切片
輸出相同
PS:len(l1)代表要將l2插入l1中的位置
例如
輸出為:
又如:
輸出為:
總結:第一種方方法思路比較清晰,就是運算符的重載;第二種方法比較簡潔,但會覆蓋原始list;第三種方法功能比較強大,可以將一個列表插入另一個列表的任意位置

F. python 將兩個list合並成為一個嵌套的list

除了直接相加(生成新的list),還有兩種方法(修改其中一個list):
用list的extend方法,L1.extend(L2),該方法將參數L2的全部元素添加到L1的尾部,例如:

1
2
3
4
5

>>> L1 = [1, 2, 3, 4, 5]
>>> L2 = [20, 30, 40]
>>> L1.extend(L2)
>>> L1
[1, 2, 3, 4, 5, 20, 30, 40]

用切片(slice)操作,L1[len(L1):len(L1)] = L2和上面的方法等價,例如:

1
2
3
4
5
6

>>> L1 = [1, 2, 3, 4, 5]
>>> L2 = [20, 30, 40]
>>> L1[len(L1):len(L1)] = L2
>>>
>>> L1
[1, 2, 3, 4, 5, 20, 30, 40]

但切片方法用起來更靈活,可以插入到頭部,或其他任意部位,例如:
加到開頭:

1
2
3
4
5

>>> L1 = [1, 2, 3, 4, 5]
>>> L2 = [20, 30, 40]
>>> L1[0:0] = L2
>>> L1
[20, 30, 40, 1, 2, 3, 4, 5]

加到中間:

1
2
3
4
5
6

>>> L1 = [1, 2, 3, 4, 5]
>>> L2 = [20, 30, 40]
>>>
>>> L1[1:1] = L2
>>> L1
[1, 20, 30, 40, 2, 3, 4, 5]

參考
1.《python libarary referece》5.6.4. Mutable Sequence Types:
(oschina文檔鏡像地址)http://tool.oschina.net/uploads/apidocs/python2.7.3/library/stdtypes.html#mutable-sequence-types

G. python 嵌套list讀取

b1=[[2]*3]*2
b2=[[2,2,2],[2,2,2]]
這個兩個定義的變數其實時不一樣的
b2一個list,包含兩個list元素
b1是1個list元素的兩個淺拷貝,可以理解成兩個指向[2]*3的指針。
出現這種問題,實際上理解的誤區,[2]*3
=
[2,2,2]
就想當然的把[[2]*3]*2=
[2,2,2]*2
=
[[2,2,2]
[2,2,2]]
其實[[]]是一個list的淺拷貝(或者理解成指向list指針)
更詳細的可以看下python的文檔,裡面有說明。

H. 如何使用Python3實現嵌套List中的元素兩兩相乘

一、

AList=[[5,8],[3,6],[4,5],[3,8],[6,2]]
foriinrange(len(AList)):
AList.append(AList[0][0]*AList[0][1])
temp=AList.pop(0)
print("AList="+str(AList))

二、

AList=[[5,8],[3,6],[4,5],[3,8],[6,2]]
foriinAList:
AList_Fist.append(i[0])
print("AList_Fist="+str(AList_Fist))

I. python 嵌套list讀取

a=[['1','2','3'],['5','6','7']]
a[0]#['1','2','3']
a[0][1]#'2'

J. python 解嵌套的list

importitertools

lst_all=[['A','Blue'],['A','Green'],['A','Yellow'],['B','Red'],['C','Red'],['C','White']]

collector=[]
fork,lstgroupinitertools.groupby(sorted(lst_all),lambdax:x[0]):
collector.append([k,','.join([c[1]forcinlstgroup])])

printcollector

熱點內容
編程好軟體 發布:2025-01-16 20:38:07 瀏覽:422
流量密碼如何改成 發布:2025-01-16 20:37:13 瀏覽:49
java判斷是否是對象 發布:2025-01-16 20:31:04 瀏覽:884
python調用外部程序 發布:2025-01-16 20:14:09 瀏覽:396
緩解壓力英語作文 發布:2025-01-16 20:13:31 瀏覽:64
javaname 發布:2025-01-16 20:13:15 瀏覽:21
用戶訪問表空間 發布:2025-01-16 20:07:07 瀏覽:943
java代碼自動編譯 發布:2025-01-16 19:58:14 瀏覽:313
編程很困難 發布:2025-01-16 19:58:09 瀏覽:673
gg登錄源碼 發布:2025-01-16 19:58:07 瀏覽:292