簡體   English   中英

索引二維數組/列表

[英]Indexing 2d arrays/lists

嗨,我正在嘗試查找二維數組的索引,但一次只能找到如何索引每一行。 不幸的是,這沒有用,因為在第一個索引語句在列表中找不到單詞后,我找不到另一個索引。

這是我試圖使用的代碼:

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 中的二維數組/列表中找到元素(字符串)的位置

任何幫助將不勝感激

下面是遍歷二維數組並提取與條件匹配的元素的索引值的示例。

一些注意事項:

  • 我使用了任意示例數據,因為您沒有包含有關您正在處理的值的詳細信息
  • 我演示了如何處理二維數組中的重復值。 根據您的假設,您可能需要調整邏輯(例如處理words_to translate重復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)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM