List1 = ['SSA','NTSS','BB','KI']
List2 = [array(['(IEDSS)'],dtype=object), array(['PSG'], dtype=object), array(['KI'], dtype=object)],array(['IEDSS'], dtype=object)]
问题在下面给出
我想将列表2转换为列表1,即将list(numpy array)转换为list(list)
输出应为list2 = ['IEDSS','PSG','KI', 'IEDSS']
过滤两个列表,以便我从列表2获得唯一的输出。例如
final_list = ['IEDSS','PSG']
对于上述问题2,我尝试使用
def common_elements(list1, list2):
result = []
for element in list1:
if element not in list2:
result.append(element)
return result
但是我没有得到所需的输出。
答案 0 :(得分:0)
您可以将数组转换为列表,提取第一项并将括号替换为空格。这是在集合理解中执行的,以提取唯一值。
然后使用set.difference
或其语法糖-
删除与List1
相同的项目。
import numpy as np
List1 = ['SSA','NTSS','BB','KI']
List2 = [np.array(['(IEDSS)'], dtype=object), np.array(['PSG'], dtype=object),
np.array(['KI'], dtype=object), np.array(['IEDSS'], dtype=object)]
Set2 = {i.tolist()[0].replace('(', '').replace(')', '') for i in List2}
res = list(Set2 - set(List1))
print(res)
['IEDSS', 'PSG']