欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2023年08月22日 09:55:42   作者:小琳愛分享  
這篇文章主要介紹了Python如何從列表中刪除相鄰和不相鄰的相同元素問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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

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

不相鄰元素的刪除

結(jié)果: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:  #可以刪除重復(fù)元素,不管是否相鄰
        new_list.append(i)
print(new_list)
# 第二種  集合可以去重  先轉(zhuǎn)換成集合再轉(zhuǎn)換成列表
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]:
        new_list.append(list[i + 1])
for j in new_list:
    list.remove(j)
print(list)
# 第四種
# fromkeys 是把所有的鍵都賦同樣的值(如果不指定內(nèi)容則默認(rèn)賦值為None)
list = [1,2,3,3,4,1,1]
new_list = []
dct = dict.fromkeys(list)
# print(dct)
for n in dct:
    new_list.append(n)
print(new_list)
# 第五種  第四種方法的簡寫
list1 = [1,2,3,3,4,1,1]
print(list(dict.fromkeys(list1)))

相鄰元素的刪除

#結(jié)果:list1 = [1, 2, 3, 4, 1]
#第一種,比較相鄰兩個(gè)值,若相同,則del其中一個(gè),逐個(gè)遍歷,直到?jīng)]有重復(fù)的。
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()是一個(gè)生成器類型,需要使用list轉(zhuǎn)換成列表
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比較列表相鄰元素(找相同或去重)

python列表去除相鄰重復(fù)相等數(shù)據(jù)(只保留一個(gè))

In [1]: import itertools
In [2]: a=[0, 1, 3, 2, 4, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 22, 23, 23, 23, 26, 29, 29, 30, 32, 33, 34, 32, 32, 15, 24]
In [3]: b=[k for k, _ in itertools.groupby(a)]
In [4]: print(b)
[0, 1, 3, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26, 29, 30, 32, 33, 34, 32, 15, 24]

python列表找到相鄰元素相同的元素值

(理解了 m=a[1:] n=a[:-1] 得到的就是要比較的前后數(shù)據(jù)之后,你就可以輕松地做玩轉(zhuǎn)相鄰元素啦)

In [22]: import numpy as np
In [23]: a=[0, 1, 3, 2, 4, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 22, 23, 23, 23, 26, 29, 29, 30, 32, 33, 34, 32, 32, 15, 24]
In [24]: m=a[1:]
In [25]: n=a[:-1]
In [26]: len(a)
Out[26]: 41
In [27]: len(m)
Out[27]: 40
In [28]: len(n)
Out[28]: 40
In [29]: c=[i[0]==i[1] for i in zip(m, n)]
In [30]: print(c)
[False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, False, True, False, False, True, True, False, True, True, False, False, True, False, False, False, False, False, True, False, False]
In [31]: d=np.array(a[:-1])[c]
In [32]: print(d)
[ 4 16 18 20 22 22 23 23 29 32]
In [33]: result = list(set(d))
In [34]: result
Out[34]: [32, 4, 16, 18, 20, 22, 23, 29]

也可以用以下的方法比較出相鄰元素是否相等,即求出上面的變量 c,然后再執(zhí)行后面的步驟

In [35]: import operator
In [36]: import itertools
In [37]: c2=list(map(operator.eq, a, itertools.islice(a, 1, None)))
In [38]: print(c2)
[False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, False, True, False, False, True, True, False, True, True, False, False, True, False, False, False, False, False, True, False, False]
In [39]: c==c2
Out[39]: True

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 快速解決vue.js 模板和jinja 模板沖突的問題

    快速解決vue.js 模板和jinja 模板沖突的問題

    今天小編就為大家分享一篇快速解決vue.js 模板和jinja 模板沖突的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python實(shí)現(xiàn)在Word中創(chuàng)建表格并填入數(shù)據(jù)與圖片

    Python實(shí)現(xiàn)在Word中創(chuàng)建表格并填入數(shù)據(jù)與圖片

    在Word中,表格是一個(gè)強(qiáng)大的工具,本文主要為大家介紹了如何使用Python在Word中創(chuàng)建表格并填入數(shù)據(jù)、圖片,以及設(shè)置表格樣式等,感興趣的可以了解下
    2024-03-03
  • Python全景系列之控制流程盤點(diǎn)及進(jìn)階技巧

    Python全景系列之控制流程盤點(diǎn)及進(jìn)階技巧

    這篇文章主要為大家介紹了Python全景系列之控制流程盤點(diǎn)及進(jìn)階技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Python中itertools庫的四個(gè)函數(shù)介紹

    Python中itertools庫的四個(gè)函數(shù)介紹

    這篇文章主要介紹了Python中itertools庫的四個(gè)函數(shù),主要討論itertools庫中的十分使用的幾個(gè)函數(shù),并重點(diǎn)介紹什么時(shí)候我們應(yīng)該考慮使用它們,需要的朋友可以參考一下
    2022-04-04
  • Python Pexpect庫的簡單使用方法

    Python Pexpect庫的簡單使用方法

    這篇文章主要介紹了Python Pexpect庫的簡單使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 利用Opencv實(shí)現(xiàn)圖片的油畫特效實(shí)例

    利用Opencv實(shí)現(xiàn)圖片的油畫特效實(shí)例

    這篇文章主要給大家介紹了關(guān)于利用Opencv實(shí)現(xiàn)圖片的油畫特效的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python爬取2021貓眼票房字體加密實(shí)例

    python爬取2021貓眼票房字體加密實(shí)例

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬取2021貓眼票房字體加密實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • Python Faker批量生成測(cè)試數(shù)據(jù)的實(shí)現(xiàn)

    Python Faker批量生成測(cè)試數(shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了Python Faker批量生成測(cè)試數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 淺談pycharm使用及設(shè)置方法

    淺談pycharm使用及設(shè)置方法

    這篇文章主要介紹了淺談pycharm使用及設(shè)置方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Selenium使用Chrome模擬手機(jī)瀏覽器方法解析

    Selenium使用Chrome模擬手機(jī)瀏覽器方法解析

    這篇文章主要介紹了Selenium使用Chrome模擬手機(jī)瀏覽器方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論