我是 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/