Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除Python列表中的重复项_Python_Python 3.x_Python 2.7 - Fatal编程技术网

如何删除Python列表中的重复项

如何删除Python列表中的重复项,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,请说明如何删除列表中的重复项。 例子 dup_list=['he','he','sh','sh','jk','jk','gf','gf'] 我希望新的列表是这样的 new_list = ['he', 'sh', ' jk', 'gf'] 请帮我解决这个问题。方法#1 new_list = ['he', 'sh', ' jk', 'gf'] new_list = list(set(new_list)) 正如我在评论中提到的,这通常比第二种方法快,因此是首选方法 Way#2 new_list

请说明如何删除列表中的重复项。 例子 dup_list=['he','he','sh','sh','jk','jk','gf','gf'] 我希望新的列表是这样的

new_list = ['he',  'sh', ' jk', 'gf']
请帮我解决这个问题。

方法#1

new_list = ['he', 'sh', ' jk', 'gf']
new_list = list(set(new_list))
正如我在评论中提到的,这通常比第二种方法快,因此是首选方法

Way#2

new_list = ['he', 'sh', ' jk', 'gf']
listA=[]
for i in new_list:
    if not(i in listA):
        listA.append(i)
new_list = listA

长话短说您可以将其转换为一个集合,然后再转换回一个列表,这将完成以下工作:

dup_list = ['he', 'he', 'sh', 'sh', ' jk', 'jk', 'gf', 'gf']
new_list = list(set(dup_list))
对于完整的解释和其他示例,已经发布了一个问题:

还有文档中的示例。此外,如果版本对您来说很重要,那么最好选择2.7和3.x标签中的一个。缓慢部分不一定是正确的。在我的Linux笔记本电脑上的Python 3.6中,way#1需要542 ns,way#2需要667 ns(在Jupyter笔记本电脑上使用%%timeit测量)。我还使用原始的
dup_列表
进行了测量,该列表实际上有重复项,结果是way#1为696ns,way#2为1040ns。教训:内置操作通常比纯Python循环更快。尽管循环在这里也表现得出奇地好。只是为了好玩,我也在PyPy上试过。仍然是way#1赢了43纳秒,way#2赢了164纳秒。是的,他们都很慢,但我忘了提到第二个的慢。渐近地,way#1是O(n),而way#2是O(n^2),因为测试
如果不是(listA中的I):
在listA的长度上是线性的。因此,在一般情况下,方式#1更快,也是首选方式。