nd.array列出以下特定列表

时间:2019-07-16 13:16:04

标签: python arrays list

我是Python的初学者...我有一个数组(ndarray),我想将其转换为另一个特定列表之后的列表。 我正在使用 python 3

例如:

 ['Notre-Dame de Paris, après la bataille 4 juillet 2019 à 10:52'] is my array

 ['NC', 'P', 'NPP', 'P', 'DET', 'NC', 'ADJ', 'NC', 'N', 'P', 'DET'] is my list

此列表是从数组中获得的,每个单词的每个元组(Notre-Dame-> NC,de-> P ....)

这样做,我得到了第三个列表,具体的列表和参考文献:

 ['P', 'N', 'ADJ', 'NC', 'DET', 'NPP', 'V', 'VPP', 'ADV', 'PROREL', 'CLS', 'VINF', 'CC', 'PUNC', 'PRO', 'ET', 'CS', 'CLR', 'CLO', 'VPR', 'ADVWH', 'C', 'VIMP', 'CL', 'VS', 'PROWH', 'ADJWH', 'PREF']

有点字典。

如果句子(数组)包含或不包含遵循顺序的每个特定元组(列表),我想得到一个完整的0或1列表

在我的示例中,它将得到:

[1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0]

因为我的句子中有一个'P'元组-> 1                    'N'...     。 。                     。 -> 1 .....但是      没有“ V”元组-> 0等。

我尝试了使用经典函数的困难方法,将许多if并在结果列表中添加0或1,但是我想在python中有一种更简单的方法,其中包含“ .. in”

1 个答案:

答案 0 :(得分:0)

术语不是全部正确,但是没关系,因为您仍在学习!

如果我正确理解了问题,在我看来,您正在将输入列表L1中的每个元素与另一个列表L2相比较,并输出一个布尔值列表(由1,0表示),以指示是否L1中的每个元素都存在于L2中。

一个简单的解决方法虽然可能不是最有效的,但可能是:

def simple_alg(L1: list, L2: list) -> list:
    output = []
    for element in L1:
        if element in L2:
            output.append(1)
        else:
            output.append(0)
    return output

使用列表理解:

def one_liner(L1, L2):
    return [int(e in L2) for e in L1 ]