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

python嵌套列表

發布時間: 2024-03-03 16:30:13

A. 請教python列表嵌套問題

可以這樣寫:

l=[{'name':'張三','性別':'男','年齡':12,'成績':60},{'name':'張三','性別':'女','年齡':12,'成績':80},{'name':'李四','性別':'男','年齡':13,'成績':75},{'name':'王五','性別':'男','年齡':12,'成績':20}]

l=list(filter(lambda d:d['name']=='張三',l))

print(l)

這是運行截圖:

B. python列表的嵌套該怎麼理解

不對…
這里
[row[i] for row in matrix] for i in range(4)

是一個整體,不然row[i] for row in matrix里的i是哪來的…
這個List Comprehension相當於一個嵌套循環,外層循環變數是i,內層循環變數是row。
把列表的外層循環改為普通for循環的話,等價於:
temp_list = []
for i in range(4):
temp_list.append([row[i] for row in matrix])

把列表的兩層循環都改為普通for循環寫法,大致相當於:

temp_list = []
for i in range(4):
temp_list.append([])
for row in matrix:
temp_list[-1].append(row[i])

C. 在 Python 中使用二維數組

如果你需要使用二維數組,在 Python 中,除了 numpy 這個包之外,最簡單的方式就是使用 list 了。你可能認為可以這樣構建:

但是請你再仔細想一想,這樣做真的沒有問題嗎?
不要忘記了, Python 一切都是對象 這個問題,對象肯定存在引用的問題,尤其是可變對象。我們試著來改變其中一個元素:

很不幸,不是我們想像的那樣,它改變了多個元素。
來看一看 [ [0] * m ] * n 這個表達式,它首先創建 a = [ [0] * 4] ,然後構造 array = [a] * 3 ,這里 array 裡面是 a 的 3 個引用。
正確的構造,應該使用 列表推導式 ,而且非常 Pythonic

D. 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)]

熱點內容
如何查看ipad配置參數 發布:2025-03-07 11:29:08 瀏覽:48
上古卷軸材質壓縮 發布:2025-03-07 11:27:36 瀏覽:623
密碼船電視劇叫什麼 發布:2025-03-07 11:19:48 瀏覽:915
qtcreator編譯器 發布:2025-03-07 11:15:22 瀏覽:869
安卓機怎麼把游戲安裝到內存卡 發布:2025-03-07 11:10:28 瀏覽:178
酒店如何配置康樂 發布:2025-03-07 11:07:34 瀏覽:288
android開發書 發布:2025-03-07 11:02:49 瀏覽:93
如何在steam裡面查看電腦配置 發布:2025-03-07 11:01:36 瀏覽:351
php爬取數據 發布:2025-03-07 10:58:43 瀏覽:456
學信網用戶名和密碼忘了怎麼辦 發布:2025-03-07 10:54:58 瀏覽:8