2024-03-29 09:27:36 发布
网友
我有这个清单:
list1 = [a, b, c, d, e, f, g]
我还有另一个列表,列表1中的项目:
list2 = [[a, c], [d,e,f], [g]]
我想知道列表1中的索引,顺序和列表2中的相同:
indexes = [[0, 2], [3, 4, 5], [6]]
谢谢!你知道吗
一种有效的方法是使用dict理解来创建一个映射,该映射将项映射到具有enumerate的索引,然后使用列表理解来根据映射dict将子列表中的项映射到索引:
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]]
您可以使用以下列表理解,其中值匹配的索引可以通过在list1上迭代时使用enumerate获得:
list1
[[ix for j in i for ix,k in enumerate(list1) if k==j] for i in list2] # [[0, 2], [3, 4, 5], [6]]
你可能会发现一些有用的读物:
List comprehensions
Enumerate
试试这个:
indexes = [[list1.index(k) for k in i] for i in list2]
输出:
一种有效的方法是使用dict理解来创建一个映射,该映射将项映射到具有
enumerate
的索引,然后使用列表理解来根据映射dict将子列表中的项映射到索引:这将返回:
您可以使用以下列表理解,其中值匹配的索引可以通过在
list1
上迭代时使用enumerate
获得:你可能会发现一些有用的读物:
List comprehensions
Enumerate
试试这个:
输出:
相关问题 更多 >
编程相关推荐