
我希望每個元素都通過 for 回圈,然后通過 if 回圈洗掉重復的元素。
num = [5, 7, 21, 7, 5, 7, 7, 5, 7 , 7]
for i in num:
if num.count(i)!=1:
num.remove(i)
print(num)
uj5u.com熱心網友回復:
由于您在迭代陣列時要減小陣列的大小。
for i in num將檢查 num 的長度。經過 5 次迭代(i=5),num 的長度會變成 5,回圈會中斷。
最好始終避免改變您正在回圈的串列。
同樣的結果也可以簡單地通過:
num = list(set(num))
uj5u.com熱心網友回復:
串列。remove(object)從串列中洗掉與指定值匹配的第一項。
為了解決您的目的,我們可以使用set具有將多個專案存盤在單個變數中的屬性的資料結構名稱。
num = [5, 7, 21, 7, 5, 7, 7, 5, 7 , 7]
print(set(num))
如果您想使用您的邏輯而不是使用set資料結構,請查看此代碼
num = [5, 7, 21, 7, 5, 7, 7, 5, 7 , 7]
res = []
for i in range(len(num)):
if num.index(num[i])==i:
res.append(num[i])
print(res)
或者
num = [5, 7, 21, 7, 5, 7, 7, 5, 7 , 7]
res = []
for i in num:
if i not in res:
res.append(i)
print(res)
uj5u.com熱心網友回復:
為什么不使用 np.unique?
import numpy as np
unique_num = np.unique(num)
https://numpy.org/doc/stable/reference/generated/numpy.unique.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/530866.html
標籤:Python列表
上一篇:R編輯資料框的子集并覆寫原始行值
下一篇:從具有條件的元組中提取串列
