几乎我需要编写一个程序来检查列表是否有任何重复项,如果有,它会删除它们并返回一个新列表,其中包含未复制/删除的项目.这就是我所拥有的,但说实话,我不知道该怎么做.
def remove_duplicates():
t = ['a', 'b', 'c', 'd']
t2 = ['a', 'c', 'd']
for t in t2:
t.append(t.remove())
return t
Run Code Online (Sandbox Code Playgroud) 是否有内置功能可以从Python中的列表中删除重复项,同时保留顺序?我知道我可以使用一个集来删除重复项,但这会破坏原始顺序.我也知道我可以像这样滚动自己:
def uniq(input):
output = []
for x in input:
if x not in output:
output.append(x)
return output
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话,我想利用内置或更多的Pythonic习语.
考虑my_list包含的Python列表['foo', 'foo', 'bar'].
什么是最Python的方式uniquify和排序列表?
(想cat my_list | sort | uniq)
这就是我目前的工作方式,虽然它有效但我确信有更好的方法可以做到这一点.
my_list = []
...
my_list.append("foo")
my_list.append("foo")
my_list.append("bar")
...
my_list = set(my_list)
my_list = list(my_list)
my_list.sort()
Run Code Online (Sandbox Code Playgroud) 有一个列表L.它包含每个任意类型的元素.如何有效删除此列表中的所有重复元素?必须保留ORDER
只需要一个算法,因此不允许导入任何外部库.
我有一节课:
class Car:
make
model
year
Run Code Online (Sandbox Code Playgroud)
我有一个汽车列表,想要获得我的汽车中的独特车型列表.
该列表可能是成千上万的项目.最好的方法是什么?
谢谢.
可能重复:
Python:从列表列表中删除重复项
说我有清单
a=[1,2,1,2,1,3]
Run Code Online (Sandbox Code Playgroud)
如果a中的所有元素都是可清洗的(就像那种情况一样),那么这将完成工作:
list(set(a))
Run Code Online (Sandbox Code Playgroud)
但是,如果
a=[[1,2],[1,2],[1,3]]
Run Code Online (Sandbox Code Playgroud)
?
我是 Python 新手,对 Python 官方文档中的一段代码感到困惑。
unique_words = set(word for line in page for word in line.split())
Run Code Online (Sandbox Code Playgroud)
对我来说,它看起来相当于:
unique_words=set()
for word in line.split():
for line in page:
unique_words.add(word)
Run Code Online (Sandbox Code Playgroud)
在嵌套循环中定义 line 之前,如何在第一个循环中使用它?然而,它确实有效。我认为这表明嵌套列表理解和生成器表达式的顺序是从左到右,这与我之前的理解相矛盾。
任何人都可以为我澄清正确的顺序吗?
如果我只知道列表元素可以排序,如何从列表中删除重复项?(我也不关心列表中项目的顺序。)
现有问题,例如如何从 Python 列表中删除重复项并保持顺序?或删除列表中的重复项需要使用集合,即要求列表中的项目是可散列的。 就我而言,哈希能力不是保证。
我有一系列数字.我想对它们进行排序并删除重复项.这个答案建议使用set和sort进行那种操作.操作顺序不应改变结果,因此我测量了计算的时间.
from numpy.random import randint
from time import clock
n = 1000000
A=randint(0,n,n)
t1=clock()
B=sorted(set(A))
t2=clock()
C=set(sorted(A))
t3=clock()
print t2-t1, t3-t2
>>> 0.48011 1.339263
Run Code Online (Sandbox Code Playgroud)
sorted(set(A))大约比set(排序(A))快三倍.
是什么让一个比另一个更快?此外,还有更快的方法吗?