Python從列表中刪除相鄰和不相鄰的相同元素

2021-10-25 12:34:28 字數 2145 閱讀 5712

相鄰元素是不相鄰元素中的一種特殊的存在,所以我們先來**不相鄰的相同元素的刪除。

結果:list=[

1,2,

3,4]

#第一種

list=[

1,2,

3,3,

4,1,

1]new_list =

for i in

list[:

]:if i not

in new_list:

#可以刪除重複元素,不管是否相鄰

print

(new_list)

# 第二種 集合可以去重 先轉換成集合再轉換成列表

list=[

1,2,

3,3,

4,1,

1]print

(list

(set

(list))

)# 第三種

list=[

1,2,

3,3,

4,1,

1]list

.sort(

)new_list =

for i in

range

(len

(list)-

1):if

list

[i]==

list

[i +1]

:list

[i +1]

)for j in new_list:

list

.remove(j)

print

(list

)# 第四種

# fromkeys 是把所有的鍵都賦同樣的值(如果不指定內容則預設賦值為none)

list=[

1,2,

3,3,

4,1,

1]new_list =

dct =

dict

.fromkeys(

list

)# print(dct)

for n in dct:

print

(new_list)

# 第五種 第四種方法的簡寫

list1 =[1

,2,3

,3,4

,1,1

]print

(list

(dict

.fromkeys(list1)

))

#結果:list1 = [1, 2, 3, 4, 1]

#第一種,比較相鄰兩個值,若相同,則del其中乙個,逐個遍歷,直到沒有重複的。

list1 =[1

,2,2

,3,3

,4,1

,1]for i in

range

(len

(list1)-1

,0,-

1):if list1[i]

== list1[i-1]

:del list1[i]

print

(list1)

#第二種,使用itertools庫

import itertools

list1 =[1

,2,2

,3,3

,4,1

,1]new_list1 =

[k for k, g in itertools.groupby(list1)

]print

(new_list1)

#第三種 生成器(generator)

#其中del_adjacent()是乙個生成器型別,需要使用list轉換成列表

list1 =[1

,2,2

,3,3

,4,1

,1]def

del_adjacent

(iterable)

: prev =

object()

for iterm in iterable:

if iterm != prev:

prev = iterm

yield iterm

a =list

(del_adjacent(list1)

)print

(a)

Python中如何從列表中刪除None值

在python中我們可以使用for迴圈遍歷過濾none值,或者使用filter 函式來刪除none值,然後返回沒有none值的新列表。下面我們就來介紹一下刪除方法,希望對大家有所幫助。none值是什麼?在 python 中有乙個值稱為 none,它表示沒有值。none 是 nonetype 資料型別...

jmu python 從列表中刪除元素

7 6 jmu python 從列表中刪除元素 15 分 刪除列表中所有符合條件的值。輸入格式 輸入n,代表要測試n次。每次測試 首先,輸入1行字串 字串內的元素使用空格分隔 然後,輸入要刪除的元素x。輸出格式 輸出刪除元素x後的每行字串。如果元素全部被刪除,則輸出空行。注意 行尾不得有多餘的空格。...

python中列表刪除和多重迴圈退出

在學習python的時候,會有一些梗非常不適應,在此列舉列表刪除和多重迴圈退出的例子 列表刪除裡面的坑 比如我們有乙個列表裡面有很多相同的值,假如 nums 1,6,6,3,6,2,10,2,100 我想去掉6,可以這樣寫 nums 1 6,6 3,6 2,10 2,100 for n in num...