web無序列表去掉點 列表去重中的copy問題

2021-10-14 03:31:08 字數 1234 閱讀 4457

一般而言,列表去重無非那幾種方法。

第一種,利用set()沒有重複值的特性去重,簡單,但是無序。

第二種,判斷迴圈的元素是否在新列表中以此來去掉重複值,可以保持原來的順序。

第三種,迴圈遍歷,判斷當前元素的個數是否大於1,然後在刪除當前元素(需注意刪除元素後列表的變化),無序。

今天主要說的就是第三種方法了。

示例**:

list1 = [1,3,4,1,2,2,2,2,1,2]

for item in list1:

print(item)

# 統計元素的個數

count = list1.count(item)

# 如果個數大於1,就刪乙個

if count > 1:

list1.remove(item)

print(list1)

#執行結果

[3, 4, 1, 2, 2, 2, 2, 1, 2]

[3, 4, 1, 2, 2, 2, 2, 1, 2]

[3, 4, 2, 2, 2, 2, 1, 2]

[3, 4, 2, 2, 2, 1, 2]

[3, 4, 2, 2, 1, 2]

[3, 4, 2, 1, 2]

process finished with exit code 0

看最後結果,就知道這次去重失敗了,是因為沒有注意元素位置移動的問題。那請仔細看下面的**有什麼不同:

list1 = [1,3,4,1,2,2,2,2,1,2]

for item in list1.copy():

print(item)

count = list1.count(item)

if count > 1:

list1.remove(item)

print(list1)

#執行結果

[3, 4, 1, 2, 2, 2, 2, 1, 2]

[3, 4, 1, 2, 2, 2, 2, 1, 2]

[3, 4, 1, 2, 2, 2, 2, 1, 2]

[3, 4, 2, 2, 2, 2, 1, 2]

[3, 4, 2, 2, 2, 1, 2]

[3, 4, 2, 2, 1, 2]

[3, 4, 2, 1, 2]

[3, 4, 1, 2]

[3, 4, 1, 2]

[3, 4, 1, 2]

process finished with exit code 0

有序列表 無序列表 巢狀列表

無序列表 有序列表 coffee teamilk coffee teamilk 不同型別的有序列表 編號列表 bananas lemons oranges 大寫字母列表 bananas lemons oranges 小寫字母列表 bananas lemons oranges 羅馬數字列表 banan...

HTML無序列表 有序列表 定義列表

一 無序列表 ordered list 各個列表專案之間沒有順序,是並列的 type屬性用於設定列表樣式,預設是小圓點 disc circle空心圓圈 square小方塊 通過list style none可以取消 二 有序列表 ordered list type 預設是1,表示專案列表用數字1,2...

列表標籤 無序列表 有序列表和自定義列表

1 無序列表 無序列表的各個列表項之間沒有順序級別之分,是並列的。基本語法 列表1li 列表2li 列表3li ul 1.中只能巢狀,直接在標籤中輸入其他標籤或者文字的做法是不被允許的。2.與之間相當於乙個容器,可以容納所有容器。2 有序列表 有序列錶即為有排列順序的列表,其各個列表項按照一定的順序...