這篇文章主要講解了python代碼將列表中重復(fù)元素之間的內(nèi)容全部濾除的實(shí)現(xiàn)方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

1. 引言
因?yàn)樵趯W(xué)習(xí)遺傳算法路徑規(guī)劃的內(nèi)容,其中遺傳算法中涉及到了種群的初始化,而在路徑規(guī)劃的種群初始化中,種群初始化就是先找到一條條從起點(diǎn)到終點(diǎn)的路徑,也因此需要將路徑中重復(fù)節(jié)點(diǎn)之間的路徑刪除掉(避免走回頭路),這樣子初始種群會(huì)比較優(yōu)越,也能加快算法收斂速度。然后我在搜資料的時(shí)候發(fā)現(xiàn),許多的代碼都是濾除列表中相同元素的,并沒(méi)有濾除相同元素中間段的代碼,因此就自己寫了。
2. 代碼部分
我在python程序中把每一條路徑用列表表示的,因此每一個(gè)列表就是一條路徑比如
a = [0,1,3,4,5,6,3,4,7,3,5,8,9,8,10,13,11,12,10]
a就是一條路徑起點(diǎn)為0,終點(diǎn)為10,但是可以看到,中間有許多回頭路。因此設(shè)計(jì)算法將冗余部分濾除。代碼如下,帶有詳細(xì)注釋:
a = [0,1,3,4,5,6,3,4,7,3,5,8,9,8,10,13,11,12,10]#初始列表
def fiter(a): #定義一個(gè)函數(shù)
for i in a: #遍歷列表中的內(nèi)容
a = a[a.index(i)+1:] #把當(dāng)前內(nèi)容索引的后面的內(nèi)容剪切下來(lái) 因?yàn)榍懊娴囊呀?jīng)比對(duì)過(guò)了
if i in a: #如果當(dāng)前內(nèi)容與后面有重復(fù)
return i,1 #返回當(dāng)前重復(fù)的內(nèi)容 以及標(biāo)志位1
else: #沒(méi)有重復(fù)就不用管 繼續(xù)for循環(huán)
pass
return 0,0 #全部遍歷完 沒(méi)有重復(fù)的就返回0 這里返回兩個(gè)0 是因?yàn)榉祷氐臄?shù)量要保持一致
b = 1 #標(biāo)志位
while(b == 1): #標(biāo)志位一直是 1 則說(shuō)明有重復(fù)的內(nèi)容
(i,b) = fiter(a) #此時(shí)接受函數(shù)接收 返回值 i是重復(fù)的內(nèi)容 b是標(biāo)志位
c = [j for j,x in enumerate(a) if x==i] #將重復(fù)內(nèi)容的索引全部添加進(jìn)c列表中
a = a[0:c[0]]+a[c[-1]:] #a列表切片在重組
print(a)另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞名稱:python代碼將列表中重復(fù)元素之間的內(nèi)容全部濾除的實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)
文章出自:http://www.chinadenli.net/article2/dcceoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、響應(yīng)式網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、用戶體驗(yàn)、搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)