寶慕林4294392
2023-06-20 16:39:15
我們索引列表的第 i 個(gè)元素表示我們想知道的 2D 列表中第 i 個(gè) 1D 列表的索引。如果我們的二維列表和索引列表如下所示:a = [[1,7,3],[9,0,8]]list_ix = [1, 0]期望的結(jié)果是 [7,9]。目前我通過(guò)使用如下循環(huán)來(lái)做到這一點(diǎn):res = []for i in range(len(list_ix)): res.append(a[i][list_ix[i]])但這在實(shí)際代碼中看起來(lái)很亂。有一個(gè)更好的方法嗎?我將不勝感激任何建議。謝謝你!
3 回答

MMMHUHU
TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
我認(rèn)為這可以通過(guò)這種方式完成:
res?=?[a[idx][element]?for?idx,?element?in?enumerate(list_ix)]

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用zip()功能:
a = [[1,7,3],[9,0,8]]
list_ix = [1, 0]
out = [l[i] for i, l in zip(list_ix, a)]
print(out)
印刷:
[7, 9]

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用enumerate
which 可以讓您從列表中獲取值并跟蹤您的當(dāng)前位置。
a = [[1,7,3],[9,0,8]]
list_ix = [1, 0]
res = []
for i, outer_list_index in enumerate(list_ix):
? ? res.append(a[i][outer_list_index])
print(res)
添加回答
舉報(bào)
0/150
提交
取消