【问题标题】:How do I print my list of numbers in python without "set" before it? With a function where it returns a new list & the numbers only occur once如何在没有“设置”的情况下在 python 中打印我的数字列表?使用返回新列表的函数,并且数字仅出现一次
【发布时间】:2014-10-16 17:35:00
【问题描述】:

我定义了一个函数,它接受一个数字列表并返回一个新列表,其中第一个列表的每个元素只出现一次。

def unique(a):
      return set(a)

print unique([1,2,3,4,1,5])

我尝试了print ",".join(str(e) for e in s),但它不起作用,因为我必须打印一个没有重复数字的新列表。

【问题讨论】:

  • 你能解释一下“不起作用”是什么意思吗?我不明白那句话。只是你忘了用unique(s)代替s吗?还是有什么不同?您能否向我们展示您从尝试过的代码中获得的输入、预期输出和实际输出?
  • 如果问题只是set 不是list,那很简单:return list(set(a))。但不知何故,我认为这不是你的问题。
  • 确实,听起来就像@abarnert 建议您只是忘记将set 用作s 而是使用原始输入列表。请注意,您的unique 方法维护输入顺序,set 不是list,例如它不支持索引(不允许使用set[0])。至少如果顺序无关紧要,它应该返回list(set(a)),但是如果您需要保持输入顺序而不是需要做一些不同的事情。

标签: python list numbers set


【解决方案1】:

你可以使用:

list(set(a))

这会将列表转换为一个集合,该集合将只保留唯一的出现,然后转换回一个列表。

例子:

>>> list(set([1, 1, 2, 2, 3, 3]))
[1, 2, 3]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2022-12-11
    • 2021-06-05
    • 1970-01-01
    • 2021-10-07
    相关资源
    最近更新 更多