❶ 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中列表的遍歷
沒有優雅的方法解決,只有不要使用print語句,如樓上所說,或者使用python3.X中的print函數(通過
from __future__ import print_function使能print函數形式)
其實,在python2.X手冊中對print語句描述說:(python2.7.2官方幫助文檔)
一個空格會被自動列印在每個對象前,
除非:(1)還沒有輸出寫到標准輸出中
(2)當最後一個寫到標准輸出的是一個除了空格『 』的空白字元
(3)當最後寫到標准輸出的不是一個print語句。
所以在apple、banana等每個字元前都有一個空格。(apple的a前也有空格呢!)
一個好的解決辦法是使用python3.X中的print函數。
通過在文件前面加上:
from __future__ import print_function
就可以使用print的函數形式了。
print函數的語法:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])
默認下,若沒有指定sep,則使用空格。沒指定end,則使用換行符。沒指定輸出文件則輸出到標准輸出。
例如:print('hello','world',sep='-',end='#')輸出:
hello-world#
所以,你的程序可改為:
from __future__ import print_function
list = ["apple", "banana", "grape", "orange"]
for x in range(len(list)):
print('list[%d]:'%x,end='')
for y in range(len(list[x])):
print(list[x][y],sep='',end='')
print('')
至於: 'list[%d]:'%x 這里的百分號,是一個對字元串的操作符。百分號使得百分號前面的字元串中
的%d被百分號後的x的值替換掉。
❸ python中list中怎麼刪除重復數據保留一條
可以先統計list中每個數據的個數,用一個dict存儲,然後遍歷list,判斷是否是最後一個,是的就從list中刪除即可
❹ python求解
題主你好,
代碼及測試截圖如下:
希望可以幫到題主, 歡迎追問
❺ python 遍歷dict,刪除其中元素時報錯!
dictionary changed size ring iteration 在iteration 的時候不能改變字典的尺寸
❻ python中從列表中用for循環刪除(remove方法)停用詞特別慢,有快一點的方法嗎
python中最好不要在list遍歷中使用list.remove方法:
remove 僅僅 刪除一個值的首次出現。
如果在 list 中沒有找到值,程序會拋出一個異常
建議使用新的list存儲要保留的內容,然後返回這個新list。比如
a_list=[1,2,3,4,5]
needs_to_be_removed=[3,4,5]
result=[]
forvina_list:
ifvnotinneeds_to_be_removed:
result.append(v)
printresult