查看一维数组中的元素是否在另一个MD数组中

2024-04-26 22:55:30 发布

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

array1D = ['book', 'aa', 'Ab', 'AB']
arrayMD = ['ss', 'book', 'fd', '2'], ['sw', 'd'], ['we', 'wr']

如何检查ArrayId中是否存在ArrayId中的任何元素?你知道吗

到目前为止,我只知道find()方法,这似乎只适用于一个元素搜索。你知道吗

编辑:我也想从arrayMD得到它的索引


Tags: 方法元素abswfindwrssaa
3条回答
array1D = ['book', 'aa', 'Ab', 'AB']
arrayMD = [['ss', 'book', 'fd', '2'], ['sw', 'd'], ['we', 'wr']]

for word in array1D:
    for arrindex, subarr in enumerate(arrayMD):
        for wordindex, subword in enumerate(subarr):
            if word == subword:
                print(word, arrindex, wordindex)
                break

输出: (“书本”,0,1)

它的效率不高,因为它遍历每个数组中的每个元素,但它是有效的。你知道吗

如果您只是想知道元素是否在第二个“数组”中的任何位置,那么最好先将其展平,这也具有能够处理任何深度的数组的优势。如果您不确定列表有多深,那么使用numpy就很容易做到这一点。你知道吗

import numpy as np

arrayMD_flat = np.array(arrayMD).flatten()

for item in array1D:
    if item in arrayMD_flat:
        print('{0} was found!'.format(item))

使用^{}。你知道吗

for sublist in arrayMD:
    for index, element in enumerate(sublist):
        if element in array1D:
             # Do something

相关问题 更多 >