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

2024-09-28 21:12:10 发布

您现在位置:Python中文网/ 问答频道 /正文

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,即将列表(numpy数组)转换为列表(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

但我没有得到所需的输出


Tags: in列表objectelementresultarrayssadtype
1条回答
网友
1楼 · 发布于 2024-09-28 21:12:10

您可以将数组转换为列表,提取第一项并用空格替换圆括号。这是在集合理解中执行的,以提取唯一值

然后使用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']

相关问题 更多 >