几乎我需要编写一个程序来检查列表是否有任何重复项,如果有,它会删除它们并返回一个新列表,其中包含未复制/删除的项目.这就是我所拥有的,但说实话,我不知道该怎么做.
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习语.
有一个列表L.它包含每个任意类型的元素.如何有效删除此列表中的所有重复元素?必须保留ORDER
只需要一个算法,因此不允许导入任何外部库.
我在这里看到了一些非常相关的问题,但他们的回答对我不起作用。我有一个列表列表,其中一些子列表是重复的,但它们的元素可能是无序的。例如
g = [[1, 2, 3], [3, 2, 1], [1, 3, 2], [9, 0, 1], [4, 3, 2]]
根据我的问题,输出应该是:
g = [[1,2,3],[9,0,1],[4,3,2]]
我已经尝试过,set但只删除了那些相等的列表(我认为它应该可以工作,因为集合的定义是没有顺序的)。我访问过的其他问题只有列表完全重复或重复的示例,如下所示:Python:如何删除列表列表中的重复列表?. 现在输出顺序(对于列表和子列表)不是问题。
例如 : x=[1,1,1,1,2,2,2,"a","a","a","b","b"]
我想打印: 1,2,"a","b"
如果案例是列表很长,我甚至不知道列表中有多少种元素呢?
Python中有没有可以做到的功能?或者,我如何编写for循环来执行此操作?
嘿,我试图从列表中删除一个项目(不使用set):
list1 = []
for i in range(2,101):
for j in range(2,101):
list1.append(i ** j)
list1.sort()
for k in range(1,len(list1) - 1):
if (list1[k] == list1[k - 1]):
list1.remove(list1[k])
print "length = " + str(len(list1))
Run Code Online (Sandbox Code Playgroud)
该set函数工作正常,但我想应用此方法.除了我得到:
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
在声明中:
if (list1[k] == list1[k - 1]):
Run Code Online (Sandbox Code Playgroud)
编辑添加 (感谢Ned Batchelder)工作代码是:
list1 = []
for i in range(2,101):
for j in range(2,101):
list1.append(i ** j)
list1.sort()
k = 0
while k < len(list1) - 1: …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何在保留顺序的同时从Python中的列表中删除重复项?
在Python中,从列表中删除重复项的最快算法是什么,以便所有元素在保留顺序的同时是唯一的?
我想知道是否有一个函数执行以下操作:
以列表作为参数:
list = [ 3 , 5 , 6 , 4 , 6 , 2 , 7 , 6 , 5 , 3 ]
Run Code Online (Sandbox Code Playgroud)
并删除列表中的所有重复以获取:
list = [ 3 , 5 , 6 , 4 , 2 , 7 ]
Run Code Online (Sandbox Code Playgroud)
我知道你可以将它转换成字典,并使用字典不能重复的事实,但我想知道是否有更好的方法.
谢谢
python ×8
list ×7
unique ×3
algorithm ×2
duplicates ×2
python-2.7 ×2
arrays ×1
c++ ×1
haskell ×1
intersection ×1
java ×1
numpy ×1
set ×1