【问题标题】:Issue with elements of dimensional lists维度列表元素的问题
【发布时间】:2021-12-30 13:57:57
【问题描述】:

我是 python 新手,我发现了一个问题。当我使用此代码时,我得到了期望的输出。

    list1=[[1,3,5,7],
    [18,9,23,30]
    
    
    ]
    list2 = [1,3,7]
    print(list1[0].index(1))
output = 0

但是当我使用此代码时,尽管 1 在此列表中,但我得到了错误的输出。

list1=[[1,3,5,7],
[18,9,23,30]


]
list2 = [1,3,7]
print(list1[0].index(1))
for element in list2:
    if element in list1:
        print(list1[0].index(element))
    else:
        print("Element not in list1")

输出 = 0 元素不在 list1 中 元素不在 list1 中 元素不在 list1 中

为什么会这样?第二个问题是我使用 print(list1[0].index(1)) 来获取第二个索引,因为我知道这个字母会在 row = 0 中。不管我们知道列数还是行数,是只获取第二个索引还是只获取第一个索引的更通用的方法?

【问题讨论】:

  • for element in list2: 循环整数。 if element in list1: 将是错误的,因为 list1 是列表列表 - 而不是整数列表。
  • 那么第二个功能如果能用怎么改呢?因为如果我遍历 list1 我会得到 1 列表,所以我不会有双索引

标签: python list for-loop multidimensional-array


【解决方案1】:

element 是一个整数,list1 是一个列表列表,所以element 不会直接在list1 中(它可能在list1 的子列表之一中)。您可以使用嵌套循环搜索list1 中的每个子列表:

for element in list2:
    for index,sub_list in enumerate(list1):
        if element in sub_list:
            print(f"{element} found at list1[{index}][{sub_list.index(element)}]")
            break
    else:
        print(f"{element} not in list1")

【讨论】:

    猜你喜欢
    • 2022-10-04
    • 2019-05-08
    • 2021-08-25
    • 1970-01-01
    • 2021-12-04
    • 2021-09-06
    • 1970-01-01
    • 2019-10-16
    • 2021-05-10
    相关资源
    最近更新 更多