python如何刪除list里重復的元素

一共使用四種方法來去除列表中的重復元素,下面是具體實現:

def f1(seq):

# not order preserving

set = {}

map(set.__setitem__, seq, [])

return set.keys()

def f2(seq):

# order preserving

checked = []

for e in seq:

if e not in checked:

checked.append(e)

return checked

def f3(seq):

# Not order preserving

keys = {}

for e in seq:

keys[e] = 1

return keys.keys()

def f4(seq):

# order preserving

noDupes = []

[noDupes.append(i) for i in seq if not noDupes.count(i)]

return noDupes

def f5(seq, idfun=None):

# order preserving

if idfun is None:

def idfun(x): return x

seen = {}

result = []

for item in seq:

marker = idfun(item)

# in old Python versions:

# if seen.has_key(marker)

# but in new ones:

if marker in seen: continue

seen[marker] = 1

result.append(item)

return result

def f6(seq):

# Not order preserving

set = Set(seq)

return list(set)

Ⅱ python如何刪除匹配(重復)的元素

list(set(a).symmetric_difference(set(b)))

global proc vector test(vector $vec
{
int $x = ceil(($vec.x) - 0.2);
int $y = ceil(($vec.y) - 0.2);
int $z = ceil(($vec.z) - 0.2);
return <<$x,$y,$z>>;
}

python寫法

import math
c = lambda: x : math.ceil(x-0.2)

def test(vec):
return c(vec.x),c(vec.y),c(vec.z)
還有更復雜的寫法 類似於反射之類的

Ⅲ python代碼:刪除列表中相同的元素

lonelycat1984 沒考慮其他情況,比如,內無法hash的情況

try:
set
except NameError:
from sets import Set as set #2.3以前

def unique(s):
try:
return list(set(s))
except TypeError:
pass

t = list(s)
try:
t.sort()
except TypeError:
del t
else:
return [x for i,x in enumerate(t) if not i or x !容= t[i-1]]

u = []
for x in s:
if x not in u:
u.append(x)
return u

Ⅳ Python:如何從列表中刪除重復項

#!/usr/bin/python
#-*-coding:utf-8-*-
#@File:Sum_Number.py
"""
列表變集合
"""


deflist2set(olist):
"""通過將list變成Set去重"""
ifisinstance(olist,list):
temp_set=set(olist)
result=list(temp_set)
returnresult
else:
return"Notalist"

if__name__=='__main__':
alist=eval(raw_input(u'請輸入一個列表:'))
printu'{0}除重後為:{1}'.format(alist,list2set(alist))

Ⅳ python 關於去除列表中重復的問題

list(set(l))

Ⅵ python list 去重復

import
a = [{'a':12,'b':21},{'a':13,'b':22},{'a':14,'b':22},{'a':15,'b':23},{'a':16,'b':22}]
d = {}
for i in a:
d.setdefault(i['b'], 0)
d[i['b']] += 1
at = .(a)
for i in at:
if d[i['b']] > 1:
a.remove(i)
print a
先把b值統計一下。然後再一個比對,如果統計個數大於1,就從列表中移出。

Ⅶ Python輸入列表去掉列表中重復的數字,按原次序輸出。

2018-04-13
使用列表推導,只保留元素個數等於1的

1
2
3

a = ['a', 'b', 'c', 'd', 'a', 'a']
b = [x for x in a if a.count(x) == 1]
print b

列表推導中的x for x in a if a.count(1) == 1和下面的for循環等價,不過更簡潔:

1
2
3
4
5

b = []
for x in a:
if a.count(x) == 1:
b.append(x)
print b

Ⅷ python中怎麼去除列表中的重復元素

集合set
set(...)

Ⅸ python如何刪除list里重復的元素

代碼如下:

oldList=['a','b','c','d','a','a']
newList=[]
forletterinoldList:
ifletternotinnewList:
newList.append(letter)
printnewList
運行結果內:容
['a','b','c','d']

Ⅹ python兩個列表字典,刪除相同元素

按照你的要求去除list2中的重復項的Python程序如下

list1=[{'title':'我是標題1','url':'我是網址1'},{'title':'我是標題2','url':'我是網址2'},{'title':'我是標題3','url':'我是網址3'}]

list2=[{'title':'我是最新1','url':'我是最新網址1'},{'title':'我是最新2','url':'我是最新網址2'},{'title':'我是標題1','url':'我是網址1'}]

list3=[item for item in list2 if item not in list1]

print(list3)