在 2D 列表中查找值的 Pythonic 方法?

moo*_*der 3 python list python-3.x

使用 numpy 数组,您可以使用切片检查特定列,即array[:, 0]. 对于列表,检查 2D 元素是否在内部就像 一样简单["one", "two"] in some_list。然而,仅仅查看是否"one"存在就需要迭代元素,即["one" == item[0] for item in some_list]

我非常喜欢 numpy 数组,除了我的数组需要修改(在末尾添加并删除值)。我喜欢使用列表,因为它们使用起来非常简单。我正在考虑数据帧,但我觉得我应该能够找到一些聪明而有效的方法来使用列表进行这种操作。

Dan*_*n R 7

要检查是否item存在于二维列表中的任何位置list_of_lists,您可以这样做

any(item in sublist for sublist in list_of_lists)
Run Code Online (Sandbox Code Playgroud)

请注意,与另一个答案的列表扁平化想法不同,此解决方案不需要使用任何额外的内存。