【问题标题】:Indexing 2d arrays/lists索引二维数组/列表
【发布时间】:2020-06-11 19:47:59
【问题描述】:

您好,我正在尝试查找二维数组的索引,但只能找到如何一次索引每一行。不幸的是,这没有用,因为在第一个索引语句在列表中找不到单词后,我无法找到另一个索引。

这是我尝试使用的代码:

if not button:#code to be ran if in test screen
    #print("Test Mode")
    time.sleep(0.4)
    Wordtotranslate = self.driver.find_element_by_xpath('/html/body/div[4]/div[3]/div/div/div[1]/div[1]/div/div')
    Wordtotranslate = Wordtotranslate.text
    print(Wordtotranslate)
    def in_list():
        for i, sublist in enumerate(words_list2d):
            if Wordtotranslate in sublist:
                return i
        return -1
    in_list()

我得到的错误是:

Eng_Index = words_list2d[0].index(Wordtotranslate)

ValueError: 'on' 不在列表中

简而言之,我希望在 python 的二维数组/列表中找到元素(字符串)的位置

任何帮助将不胜感激

【问题讨论】:

    标签: python arrays list multidimensional-array indexing


    【解决方案1】:

    这是一个遍历二维数组并提取符合条件的元素的索引值的示例。

    几个注意事项:

    • 我使用了任意示例数据,因为您没有包含有关您正在处理的值的详细信息
    • 我演示了如何处理二维数组中的重复值。根据您的假设,您可能需要调整逻辑(例如,处理words_to translate 中的重复项,也许您使用了list.index(),因为只关心第一个实例等)
    import collections
    
    words_list2d = [
        ['here', 'are', 'example'],
        ['words', 'in', 'a'],
        ['2d', 'array', 'with'],
        ['duplicate', 'words', 'duplicate'],
    ]
    
    words_to_translate = ['example', 'array', 'duplicate', 'words']
    
    word_indexes = collections.defaultdict(list)
    
    for row_index, row in enumerate(words_list2d):
        for value_index, value in enumerate(row):
            for word in words_to_translate:
                if word == value:
                    word_indexes[word].append((row_index, value_index))
                    break
    
    for word in word_indexes:
        print(f"{word}: {word_indexes[word]}")
    

    输出:

    $ python3 find_words_in_2d_array.py
    example: [(0, 2)]
    words: [(1, 0), (3, 1)]
    array: [(2, 1)]
    duplicate: [(3, 0), (3, 2)]
    

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 2016-06-22
      • 2023-03-07
      • 1970-01-01
      • 2011-07-07
      • 2018-06-25
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多