簡體   English   中英

如何在列表(python)列表中查找項目的索引?

[英]How to find the indexes of items in a list of lists (python)?

我有這個清單:

list1 = [a, b, c, d, e, f, g]

我還有另一個列表列表,其中包含 list1 中的項目:

list2 = [[a, c], [d,e,f], [g]]

我想以與列表 2 中相同的順序知道列表 1 中的索引:

indexes = [[0, 2], [3, 4, 5], [6]]

謝謝!

嘗試這個 :

indexes = [[list1.index(k) for k in i] for i in list2]

輸出

[[0, 2], [3, 4, 5], [6]]

您可以使用以下列表理解,其中值匹配的索引可以通過在迭代list1使用enumerate獲得:

[[ix for j in i for ix,k in enumerate(list1) if k==j] for i in list2]
# [[0, 2], [3, 4, 5], [6]]

一些你可能會覺得有用的讀物​​:

一種有效的方法是使用字典推導來創建一個映射,將項目映射到enumerate索引,然后使用列表推導根據映射字典將子列表中的項目映射到索引:

d = {k: i for i, k in enumerate(list1)}
[list(map(d.get, l)) for l in list2]

這將返回:

[[0, 2], [3, 4, 5], [6]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM