将list(numpy_array)转换为list(list)并比较2个列表

时间:2018-10-12 05:47:33

标签: python list numpy

List1 = ['SSA','NTSS','BB','KI']
List2 = [array(['(IEDSS)'],dtype=object), array(['PSG'], dtype=object), array(['KI'], dtype=object)],array(['IEDSS'], dtype=object)]

问题在下面给出

  1. 我想将列表2转换为列表1,即将list(numpy array)转换为list(list)

    输出应为list2 = ['IEDSS','PSG','KI', 'IEDSS']

  2. 过滤两个列表,以便我从列表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

但是我没有得到所需的输出。

1 个答案:

答案 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']