最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

不相鄰元素的刪除

結(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)
# 第五種  第四種方法的簡(jiǎn)寫
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庫(kù)
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)文章

  • 關(guān)于python中time和datetime的區(qū)別與用法

    關(guān)于python中time和datetime的區(qū)別與用法

    這篇文章主要介紹了關(guān)于python中time和datetime的區(qū)別與用法,Python中封裝了很多實(shí)用的函數(shù),那么關(guān)于時(shí)間的函數(shù)time和datetime有什么區(qū)別和作用,讓我們來(lái)看看吧
    2023-03-03
  • 利用Python語(yǔ)言的grpc實(shí)現(xiàn)消息傳送詳解

    利用Python語(yǔ)言的grpc實(shí)現(xiàn)消息傳送詳解

    gRPC是一個(gè)高性能、通用的開(kāi)源RPC框架,其由Google主要面向移動(dòng)應(yīng)用開(kāi)發(fā)并基于HTTP/2協(xié)議標(biāo)準(zhǔn)而設(shè)計(jì)。本文主要介紹了如何利用Python語(yǔ)言的grpc實(shí)現(xiàn)消息傳送,感興趣的可以了解一下
    2023-03-03
  • Tensorflow實(shí)現(xiàn)酸奶銷量預(yù)測(cè)分析

    Tensorflow實(shí)現(xiàn)酸奶銷量預(yù)測(cè)分析

    這篇文章主要為大家詳細(xì)介紹了Tensorflow酸奶銷量預(yù)測(cè)分析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python?如何截取字符函數(shù)

    Python?如何截取字符函數(shù)

    這篇文章主要介紹了Python?如何截取字符函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg

    PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg

    這篇文章主要為大家介紹了PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • JSON Web Tokens的實(shí)現(xiàn)原理

    JSON Web Tokens的實(shí)現(xiàn)原理

    本文主要介紹了JSON Web Tokens的實(shí)現(xiàn)原理。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-04-04
  • Python工廠模式實(shí)現(xiàn)封裝Webhook群聊機(jī)器人詳解

    Python工廠模式實(shí)現(xiàn)封裝Webhook群聊機(jī)器人詳解

    企業(yè)存在給 特定群組 自動(dòng)推送消息的需求,你可以在群聊中添加一個(gè)自定義機(jī)器人,通過(guò)服務(wù)端調(diào)用 webhook 地址,即可將外部系統(tǒng)的通知消息即時(shí)推送到群聊中。本文就來(lái)和大家聊聊具體實(shí)現(xiàn)方法
    2023-02-02
  • Python中應(yīng)用protobuf的示例詳解

    Python中應(yīng)用protobuf的示例詳解

    這篇文章主要來(lái)和大家聊一聊?protobuf,它是一個(gè)數(shù)據(jù)序列化和反序列化協(xié)議,因此它和?json?的定位是一樣的。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-02-02
  • Python Socket編程詳細(xì)介紹

    Python Socket編程詳細(xì)介紹

    這篇文章主要介紹了Python Socket編程詳細(xì)介紹,socket可以建立連接,傳遞數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Python編寫車票訂購(gòu)系統(tǒng)?Python實(shí)現(xiàn)快遞收費(fèi)系統(tǒng)

    Python編寫車票訂購(gòu)系統(tǒng)?Python實(shí)現(xiàn)快遞收費(fèi)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Python編寫車票訂購(gòu)系統(tǒng),Python實(shí)現(xiàn)快遞收費(fèi)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論

桑日县| 许昌市| 延津县| 桐城市| 钦州市| 崇州市| 祁东县| 即墨市| 娄烦县| 乌审旗| 南部县| 天台县| 甘泉县| 长武县| 蒙阴县| 白沙| 镇坪县| 双牌县| 涿州市| 京山县| 普格县| 沙雅县| 伽师县| 乌苏市| 怀远县| 罗山县| 北流市| 五指山市| 桐柏县| 璧山县| 南宁市| 区。| 石柱| 靖西县| 张家界市| 什邡市| 交口县| 长乐市| 林甸县| 瑞昌市| 房山区|