我是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”
答案 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 ]