python - nd.array 列出特定列表之后的内容

标签 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 中有一个更简单的方法,其中包含一些“for .. in”

最佳答案

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

如果我正确地理解了这个问题,在我看来,您正在将输入列表 L1 中的每个元素与另一个列表 L2 进行比较,并输出一个 bool 值列表(用 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 ]

关于python - nd.array 列出特定列表之后的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058164/

相关文章:

python - 优化 apply 函数内的 pandas 过滤器

python - matplotlib stepfilled 直方图在 xubuntu 的值 10^-1 处中断

javascript - 映射到数组对象中,并带有其他映射参数的索引

python - 如何获取python中列表列表的统计信息?

python - 类型错误 : object of type 'filter' has no len()

Python:Chi 2 测试产生错误结果 (chi2_contingency)

python - 在 Python 中从包含特殊字符的 CSV 单元格中提取字符串

java - 井字棋计划协助

java - Java 中的数组返回内存分配而不是值

python - 斐波那契特定数字生成器 python