淺談python元素如何去重,去重后如何保持原來元素的順序不變
python列表元素去重后如何保持原來的順序不變
原列表:
list1 = [1,2,1,4,9,3,5,2,6,7,3,1,6,8,4,0]
去重,使用集合set來去重:
list2 = list(set(list1)
set去重得到的list2默認(rèn)按升序進(jìn)行排序:
list2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使list2按照list1元素出現(xiàn)的順序進(jìn)行排序(也就是原來的順序):
list2.sort(key = list1.index)
此時(shí),list2 = [1, 2, 4, 9, 3, 5, 6, 7, 8, 0]
具體的實(shí)現(xiàn)過程如下:
補(bǔ)充拓展:python爬取鏈接去重
我就廢話不多說了,直接上代碼吧!
from urllib.request import urlopen from bs4 import BeautifulSoup import re pages = set() def getLinks(pageUrl): global pages html = urlopen("http://en.wikipedia.org"+pageUrl) bsObj = BeautifulSoup(html) for link in bsObj.findAll("a",href = re.compile("^(/wiki/)")): if 'href' in link.attrs: if link.attrs['href'] not in pages: #遇到新的頁面 newPage = link.attrs['href'] print(newPage) pages.add(newPage) getLinks(newPage) getLinks("")
以上這篇淺談python元素如何去重,去重后如何保持原來元素的順序不變就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3的一個(gè)天坑問題及解決方法:報(bào)錯(cuò)UnicodeDecodeError: ‘utf-8‘
在調(diào)試程序發(fā)現(xiàn)python3的一個(gè)天坑問題:報(bào)錯(cuò)UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid,特此曝光,為眾位開發(fā)朋友提個(gè)醒2023-09-09Python Django框架設(shè)計(jì)模式詳解
Django是一個(gè)開源的Web應(yīng)用框架,由Python寫成。采用MVC的軟件設(shè)計(jì)模式,主要目標(biāo)是使得開發(fā)復(fù)雜的、數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發(fā)和DRY法則(Don’t Repeat Yoursef)2021-11-11Python 實(shí)現(xiàn)取多維數(shù)組第n維的前幾位
今天小編就為大家分享一篇Python 實(shí)現(xiàn)取多維數(shù)組第n維的前幾位,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Pytorch在訓(xùn)練時(shí)凍結(jié)某些層使其不參與訓(xùn)練問題(更新梯度)
這篇文章主要介紹了Pytorch在訓(xùn)練時(shí)凍結(jié)某些層使其不參與訓(xùn)練問題(更新梯度),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11