繁体   English   中英

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

[英]Pythonic way to find value in 2D list?

使用 numpy 数组,您可以使用切片检查特定列,即array[:, 0] 对于列表,检查 2D 元素是否在["one", "two"] in some_list一样简单。 但是,仅查看"one"是否存在需要 one 来遍历元素,即["one" == item[0] for item in some_list]

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

要检查二维列表list_of_lists中的任何 position 是否存在item ,您可以执行以下操作

any(item in sublist for sublist in list_of_lists)

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

不确定这是否是您要问的,但如果您只想知道一个元素是否存在于列表l列表中,您可以展平l并使用以下运算in

>> l = [["one", "two"], ["three", "four"]]
>> one_is_in_l = "one" in [item for sublist in l for item in sublist]
>> print(one_is_in_l)
True

您还可以使用 numpy 进行检查:

>> l = [["one", "two"], ["three", "four"]
>> one_is_in_l = "one" in np.array(l)
>> print(one_is_in_l)
True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM