Python:为给定项目的二维列表中的索引返回 2 个整数

新手上路,请多包涵

这周我一直在修补 python,但遇到了一些问题。

如果我有这样的二维列表:

 myList = [[1,2],[3,4],[5,6]]

我做了这个

>>>myList.index([3,4])

它会返回

1

但是,我想要列表一侧的某些内容的索引,就像这样

    >>>myList.index(3)

它会返回

1, 0

有什么可以做到的吗?

干杯

原文由 Sam Jarman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 410
2 个回答

尝试这个:

 def index_2d(myList, v):
    for i, x in enumerate(myList):
        if v in x:
            return (i, x.index(v))

用法:

 >>> index_2d(myList, 3)
(1, 0)

原文由 Mark Byers 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您正在进行多次查找,则可以创建一个映射。

 >>> myList = [[1,2],[3,4],[5,6]]
>>> d = dict( (j,(x, y)) for x, i in enumerate(myList) for y, j in enumerate(i) )
>>> d
{1: (0, 0), 2: (0, 1), 3: (1, 0), 4: (1, 1), 5: (2, 0), 6: (2, 1)}
>>> d[3]
(1, 0)

原文由 kevpie 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题