我想在列表列表中查找特定项目的位置。它应该返回一个元组列表,其中每个元组代表项目特定实例的索引。例如:
list = [['1', '2', '4', '6'], ['7', '0', '1', '4']]
getPosition('1') #returns [(0, 0), (1, 2)]
and getPosition('7') #returns [(1,0)]
最佳答案
如果你想要两者兼得的东西
- 查找重复项和
- 处理嵌套列表(......列表的列表列表)
您可以执行以下操作:
def get_positions(xs, item):
if isinstance(xs, list):
for i, it in enumerate(xs):
for pos in get_positions(it, item):
yield (i,) + pos
elif xs == item:
yield ()
测试这个:
>>> xs = [['1', '2', '4', '6'],
... ['7', '0', '1', '4'],
... [ [ '0', '1', '1'], ['1']]
... ]
>>> print list(get_positions(xs, '1'))
[(0, 0), (1, 2), (2, 0, 1), (2, 0, 2), (2, 1, 0)]
关于python - 如何在 Python 列表列表中找到项目的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/853023/