pythonlist去掉
① python:如果想要刪除list中的list中的元素該怎麼做呢
List1=[
['Apple','Google','Microsoft'],
['Java','Python','Ruby','PHP'],
['Adam','Bart','Lisa']
]
foriteminList1:
ifitem.count("Python"):
item.pop(item.index("Python"))
printList1
② python如何刪除list里重復的元素
這個可簡單可復雜。
簡單的:利用集合
a=list(set(a))#這樣就可以了,是不是很簡單
復雜的:
就是先對列表排序,然後比較相鄰元素是否相同,相同的則刪除後面的。大體演算法思路,代碼自己寫吧
當然還有其他的演算法...
-----------------------------------------------------------------------------------
額, 不好意思,看錯了
defQ(a):
aa=[]
foriina:
ifa.count(i)==1:
aa.append(i)
returnaa
這個就可以了,利用 list.count(obj) 計算obj在list中出現的次數進行判斷
③ python list怎麼刪除元素
有兩個方法
1.pop()
默認刪除最後一個元素。
也可以給定一個索引值刪除索引值對應的元素。
④ 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 列表怎樣去掉一個元素
li = [1,2,3,4,5,6]
# 1.使用del刪除對應下標的元素
del li[2]
# li = [1,2,4,5,6]
# 2.使用.pop()刪除最後一個元素
li.pop()
# li = [1,2,4,5]
# 3.刪除指定值的元素
li.remove(4)
# li = [1,2,5]
# 4.使用切片來刪除
li = li[:-1]
# li = [1,2]
# !!!切忌使用這個方法,如果li被作為參數傳入函數,
# 那麼在函數內使用這種刪除方法,將不會改變原list
li = [1,2,3,4,5,6]
def delete(li, index):
li = li[:index] + li[index+1:]
delete(li, 3)
print li
# 會輸出[1,2,3,4,5,6]
⑥ python中對list去重的多種方法
python中對list去重的多種方法
今天遇到一個問題,在同事隨意的提示下,用了 itertools.groupby 這個函數。不過這個東西最終還是沒用上。
問題就是對一個list中的新聞id進行去重,去重之後要保證順序不變。
直觀方法
最簡單的思路就是:
這樣也可行,但是看起來不夠爽。
用set
另外一個解決方案就是用set:
代碼如下:
ids = [1,4,3,3,4,2,3,4,5,6,1]
ids = list(set(ids))
這樣的結果是沒有保持原來的順序。
按照索引再次排序
最後通過這種方式解決:
代碼如下:
ids = [1,4,3,3,4,2,3,4,5,6,1]
news_ids = list(set(ids))
news_ids.sort(ids.index)
使用itertools.grouby
文章一開始就提到itertools.grouby, 如果不考慮列表順序的話可用這個:
代碼如下:
ids = [1,4,3,3,4,2,3,4,5,6,1]
ids.sort()
it = itertools.groupby(ids)
for k, g in it:
print k
關於itertools.groupby的原理可以看這里:http://docs.python.org/2/library/itertools.html#itertools.groupby
網友補充:用rece
網友reatlk留言給了另外的解決方案。我補充並解釋到這里:
代碼如下:
In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1]
In [6]: func = lambda x,y:x if y in x else x + [y]
In [7]: rece(func, [[], ] + ids)
Out[7]: [1, 4, 3, 2, 5, 6]
上面是我在ipython中運行的代碼,其中的 lambda x,y:x if y in x else x + [y] 等價於 lambda x,y: y in x and x or x+[y] 。
⑦ python list 怎麼刪除
>>>l=[1,2,3,4,5]
>>>del(l[1])
>>>l
[1,3,4,5]
del刪除某個list元素
>>>l.clear()
>>>l
[]
直接用clear清空
⑧ python list 怎麼去除空的list
假設你要處理的列表是lst,代碼如下:
L=[xforxinlstifx]
L就是你要的
⑨ python刪除list列表多個指定位置中的元素
li1=[12,3,4,5,2,34,5,6,7,3,5,6,66]
removelist=[1,2,4,5]
x=0
foryinremovelist:
li1.pop(y-x)
x+=1
printli1
這樣有一個要求就是removelist裡面的數字必須是從小到大的順序排列的,