【问题标题】:unique values in list from another list [duplicate]来自另一个列表的列表中的唯一值[重复]
【发布时间】:2015-02-12 07:54:52
【问题描述】:

正在寻找解决方案,但找不到任何解决方案。我需要创建一个程序,提示用户输入整数列表,在另一个列表中仅存储唯一整数(例如 1 到 10),并显示结果列表。目前我有一个程序,它只复制完整列表并打印它而不对整数进行排序:

def inputnumber():
    numbers = input('Enter number(s): ').split(',')
    return [int(i) for i in numbers]

x = inputnumber()
y = x[:]
print(y)

对不起,我只是一个初学者,只是尝试一切。我应该以另一种方式使用 del 函数吗?

【问题讨论】:

  • 转换为set。集合只保存唯一值。
  • 总是下意识地认为 quastion 是否定的,或者我问错了吗?我刚刚开始学习列表、序列和元组。没听说过设置函数
  • @Dinozauras 你要不要花点时间to learn them?套装很有趣!学习编程语言中可以帮助您解决问题的新结构也是如此。

标签: python


【解决方案1】:

注意,如果你只使用set,你不会得到list,而是另一种类型,所以你必须做到:

MyList = list(set(something))

【讨论】:

    【解决方案2】:

    您可以尝试将列表转换为集合。

    def inputnumber():
        numbers = input('Enter number(s): ').split(',')
        return [int(i) for i in numbers]
    
    x = inputnumber()
    y = set(x)
    print(y)
    

    正如@khelwood 所说,集合只包含唯一值,这意味着所有重复项都将被删除。

    还请记住,集合没有顺序,因此数字可能会以混合顺序显示。

    【讨论】:

    • 现在我很困惑,因为我从来没有听说过这个设置的东西,仍然不确定我将如何获得唯一值(它与 s.remove 或 s.discard 函数有关吗? )
    • 列表是项目(在本例中为数字)的集合,它保存这些项目的顺序。如果添加 1、2 和 3;您将以相同的顺序获得 1 2 3。然而,一套只包含独特的物品。如果您尝试添加重复项,它只会丢弃它们。缺点是集合不记得项目添加到其中的顺序。
    • 所以如果这个人在被问到 1、11、22、6、5(当我运行程序时)时会输入,我需要程序给我一个 [1、6、5] 的结果。设置真的是关键吗?如果是这样,我会开始寻找正确的答案
    【解决方案3】:

    您可以使用set 删除重复:

    def inputnumber():
        numbers = input('Enter number(s): ').split(',')
        return set([int(i) for i in numbers])
    

    【讨论】:

      猜你喜欢
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多