【发布时间】: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)),但是如果您需要保持输入顺序而不是需要做一些不同的事情。