clm8866 发表于 2014-04-07 19:53

Python中如何实现删除list中的重复元素?求指教~~~

def unique_list(word_list):
    """Return a list which contains unique strings.

    >>> unique_list(['cat', 'dog', 'cat', 'bug', 'dog', 'ant', 'dog', 'bug'])
    ['cat', 'dog', 'bug', 'ant']

    >>> unique_list(['Welcome', 'to', 'COMPSCI101', 'To'])
    ['Welcome', 'to', 'COMPSCI101', 'To')
    """

    new_list = []
   
    for word in word_list:
      if word not in new_list:
            new_list.append(word)
      
      return new_list

import doctest
doctest.testmod()



但是运行的时候有错误,如下

File "C:/Users/apple/Desktop/Lab05_Homework.py", line 4, in __main__.unique_list
Failed example:
    unique_list(['cat', 'dog', 'cat', 'bug', 'dog', 'ant', 'dog', 'bug'])
Expected:
    ['cat', 'dog', 'bug', 'ant']
Got:
    ['cat']
**********************************************************************
File "C:/Users/apple/Desktop/Lab05_Homework.py", line 7, in __main__.unique_list
Failed example:
    unique_list(['Welcome', 'to', 'COMPSCI101', 'To'])
Expected:
    ['Welcome', 'to', 'COMPSCI101', 'To')
Got:
    ['Welcome']
**********************************************************************
1 items had failures:
   2 of   2 in __main__.unique_list
***Test Failed*** 2 failures.

求大神们来指教~~~~

timespace 发表于 2014-04-07 20:27

LZ的实现效率太低了:dizzy:>>> list(set(['cat', 'dog', 'cat', 'bug', 'dog', 'ant', 'dog', 'bug']))
['bug', 'cat', 'ant', 'dog']

clm8866 发表于 2014-04-07 20:54

初学者没办法阿。。。。。。。。。

a-plus 发表于 2014-04-09 16:44

只测试第一个元素就返回了。当然只能是['a']和['Welcome']。return被你写道循环内了。
应该将return写道循环外。


clm8866 发表于 2014-04-10 04:50

嗯嗯 好的 谢谢啦
页: [1]
查看完整版本: Python中如何实现删除list中的重复元素?求指教~~~