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

2024-10-01 07:37:05 发布

您现在位置:Python中文网/ 问答频道 /正文

使用numpy数组,可以通过切片检查特定列,即array[:, 0]。 对于列表,检查2D元素是否在其中非常简单,如["one", "two"] in some_list。但是,只要查看是否存在"one"就需要遍历元素,即["one" == item[0] for item in some_list]

我基本上更喜欢numpy数组,只是我的数组需要修改(在末尾添加值,然后删除值)。我喜欢使用列表,因为它们很容易使用。我正在考虑dataframe,但我觉得我应该能够找到一些聪明而有效的方法来使用列表进行这种操作


Tags: innumpy元素dataframe列表forsome数组
2条回答

不确定这是否是您要问的,但如果您只想知道列表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

要检查item是否存在于2D列表list_of_lists中的任何位置,可以执行以下操作

any(item in sublist for sublist in list_of_lists)

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

相关问题 更多 >