【问题标题】:Create new list containing only unique values from original list [duplicate]创建仅包含原始列表中唯一值的新列表[重复]
【发布时间】:2020-10-19 23:41:53
【问题描述】:

我有一个查找列表唯一值的函数,但我无法用它们创建新列表。

import numpy as np
def unique(list): 
    x = np.array(list) 
    print(np.unique(x))

list1 = [10, 20, 10, 30, 40, 40]  
unique(list1)

我的输出是唯一值,但我想创建一个包含它们的新列表。我认为它会像下面这样简单,但是当我打印 list2 时,输出显示“无”。我觉得有一个非常简单的答案,但我无法弄清楚。

list2 = unique(list1) 
print(list2)

【问题讨论】:

  • 你的函数隐式返回None,因为你从不显式返回任何东西
  • 你为什么需要numpy?你可以简单地做list1 = list(set(list1))
  • @eloen 请通过单击答案旁边的复选标记来接受答案之一作为解决方案。谢谢!

标签: python list function numpy unique


【解决方案1】:

必须返回函数的结果。

试试这个:

import numpy as np
def unique(list):
    x = np.array(list)
    x = np.unique(x)
    return x

list1 = [10, 20, 10, 30, 40, 40]
new_list = unique(list1)
print(new_list)

【讨论】:

  • 谢谢,这正是我要找的
  • 不客气@eloen
【解决方案2】:

如果顺序无关紧要,您可以使用set 删除欺骗,然后返回list

list1 = [10, 20, 10, 30, 40, 40]
list1 = list(set(list1))
list1
[40, 10, 20, 30]

【讨论】:

  • 这根本没有解决 OP 的问题,无论如何,他们已经有了一种获取唯一值的方法,向他们展示另一种方法并不能解决他们的函数不返回任何内容的根本问题。如果他们问如何从列表中删除重复项,那无论如何都是重复项
  • 谢谢,这更简单,订单无关紧要。
猜你喜欢
  • 2016-03-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 2019-10-25
  • 2012-10-29
  • 2014-06-12
  • 2021-07-12
  • 2020-08-02
相关资源
最近更新 更多