【问题标题】:How do I make a function that returns a list of unique strings, given a list of strings with duplicates? [duplicate]给定具有重复项的字符串列表,如何创建一个返回唯一字符串列表的函数? [复制]
【发布时间】:2014-04-09 05:40:46
【问题描述】:

这是我的编程课程的作业。我们被要求创建一个函数,该函数接受字符串列表作为参数,然后返回相同的字符串列表但没有重复。
例如:

>>> unique_list(['dog','cat','dog','fish'])
['dog','cat','fish']

任何有关此事的信息将不胜感激。

【问题讨论】:

  • 返回字符串的顺序重要吗?
  • 第一次使用这个网站,没有失望,这是一个很好的资源。感谢所有帮助我回答这个问题的人。

标签: python list unique python-3.3


【解决方案1】:

使用以下代码:

>>> def unique_list(mylist):
...     copy = []
...     for k in mylist:
...             if k not in copy:
...                     copy.append(k)
...     return copy
... 
>>> unique_list([1])
[1]
>>> unique_list([1, 1])
[1]
>>> unique_list([1, 1, 2])
[1, 2]
>>> unique_list([1, 3, 1, 2])
[1, 3, 2]
>>> unique_list(['dog','cat','dog','fish'])
['dog', 'cat', 'fish']

for 循环遍历mylist 中的每个项目。如果该项目已经在copy 中,它什么也不做。否则,它会添加要复制的项目。最后,我们返回 mylist 的“未重复”版本,存储在 copy 中。

或者单行是:

>>> def unique_list(mylist):
...     return list(set(mylist))
... 
>>> unique_list([1])
[1]
>>> unique_list([1, 1])
[1]
>>> unique_list([1, 1, 2])
[1, 2]
>>> unique_list([1, 3, 1, 2])
[1, 2, 3]
>>> unique_list(['dog','cat','dog','fish'])
['fish', 'dog', 'cat'] 

【讨论】:

  • 谢谢,这是非常有用的信息。我发现我在试用中错过了append 选项,现在我可以使用它了。此外,set 函数看起来也非常有用,一定会试一试。
  • 很高兴能帮上忙! :)
【解决方案2】:
def unique_list(subject):
    return list(set(subject))

这就是你可以在 python 3.3 中编写的内容

【讨论】:

  • 哎呀,现在我看到@aj8uppal 已经在他的答案的下半部分提到了它。 :(
猜你喜欢
  • 2012-01-11
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 2021-07-16
  • 2018-09-11
  • 1970-01-01
  • 2018-10-09
相关资源
最近更新 更多