python去除列表重復元素
Ⅰ 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)