【Python】列表重復(fù)元素刪除(附python打包教程)

1 刪除空元素

python中刪除元素有時會出現(xiàn)一些意外狀況苛让,比如刪除空元素:

        for i in a:
            if i=='' :
                a.remove(i)

或者類似的一些版本:

  for index,i in enumerate(a):
      if len(a[index])==0:
        a.remove(a[index])

對于空元素不相鄰的情況是可以很好的工作的伊滋,但是對于空元素相鄰的情況就會出現(xiàn)問題,例如對于:

a=['','a','','b','','','','']

執(zhí)行第一段代碼,結(jié)果如下:

a= ['a', 'b', '', '']

我們換一種方式,令:

a=['a','abc','b','abc','c','d','e','f']

執(zhí)行代碼:

for index,i in enumerate(a):
    if len(a[index])<3:
        a.remove(a[index])

結(jié)果:

a=['abc', 'abc', 'd', 'f']

根據(jù)這個結(jié)果很容易猜測出,在循環(huán)的時候如果一個元素刪除辉哥,那么之后的元素的索引都會減少1,而在下一次循環(huán)的時候index會增加1在辆,這么一來就有一個夾在中間的元素被忽略掉了证薇,那么很自然的我們會將代碼改成下面的樣子:

for index,i in enumerate(a):
    if len(a[index])<3:
        a.remove(a[index])
        index=index-1

不幸的是度苔,結(jié)果并沒有改變:

a=['abc', 'abc', 'd', 'f']

個人猜測在其他代碼中,比如java浑度,這么做應(yīng)該是有用的(沒有嘗試)寇窑,但是在python中這么做是不可以的,在查閱了一些資料后發(fā)現(xiàn)箩张,如果只是刪除空格那么可以用如下表達(dá):

b=[x for x in a if x!='']

這么做確實非常簡潔甩骏,至少在刪除指定字符的時候是一個不錯的選擇。然后針對索引的問題可以采用倒序的方式:

a=['','a','','b','','','','']
for i in range(len(a)-1,0,-1):
    if a[i]=='':
        a.remove(a[i])

結(jié)果還是比較好的:

a=['a', 'b']

2 刪除列表中的重復(fù)值

那么在實際中除了刪除空格有時候還需要刪除指定元素先慷,如果根據(jù)一開始的思路饮笛,代碼應(yīng)該是:

for i in a:
    if a.count(i)>1:
        a.remove(i)

同樣,對于相鄰的需要刪除的值论熙,仍然是有上面的問題的福青,這時候就要用一些其他的手段了:

  1. set()
b=sorted(set(a),key=a.index) 

采用這種方式,可以將a中重復(fù)元素去掉脓诡,同時順序是按照元素在a中出現(xiàn)的順序:

a=['f','abc','c','abc','c','a','b','a']
b=['f', 'abc', 'c', 'a', 'b']
  1. {}.fromkeys().keys()
b={}.fromkeys(a).keys()

結(jié)果:

a=['f','abc','c','abc','c','a','b','a']
b=dict_keys(['f', 'abc', 'c', 'a', 'b'])
  1. set()+sort()
b=list(set(a))
b.sort(key=a.index)

和方法一基本相同

  1. 迭代
b=[]
for i in a:
    if not i in b:
        b.append(i)

結(jié)果和一相同无午,更為樸素的一種做法

  1. 排序后手動比較相鄰元素
def sortlist(a):
    a.sort()
    last=a[-1]
    for i in range(len(a)-2,-1,-1):
        if a[i]==last:
            a.remove(a[i])
        else:
            last=a[i]
    return a

和第一部分的最后一段代碼想法是類似的,關(guān)鍵在于要先排序祝谚。


3 python的打包

安裝
方法一:
直接通過pip安裝

pip install pyinstaller

方法二:
從github上下載源碼宪迟,然后進入解壓包目錄,打開命令行:

python setup.py install

打包
對于需要打包的.py文件交惯,直接在所處位置打開命令行:

pyinstaller -F a.py

隨后在當(dāng)前目錄的dist文件夾中就可找到打包后的可執(zhí)行程序次泽。

Ref
https://www.cnblogs.com/nzyjlr/p/4174145.html
https://blog.csdn.net/mrlevo520/article/details/51840217

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市席爽,隨后出現(xiàn)的幾起案子意荤,更是在濱河造成了極大的恐慌,老刑警劉巖只锻,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袭异,死亡現(xiàn)場離奇詭異,居然都是意外死亡炬藤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門碴里,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沈矿,“玉大人,你說我怎么就攤上這事咬腋「牛” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵根竿,是天一觀的道長陵像。 經(jīng)常有香客問我就珠,道長,這世上最難降的妖魔是什么醒颖? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任妻怎,我火速辦了婚禮,結(jié)果婚禮上泞歉,老公的妹妹穿的比我還像新娘逼侦。我一直安慰自己,他們只是感情好腰耙,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布榛丢。 她就那樣靜靜地躺著,像睡著了一般挺庞。 火紅的嫁衣襯著肌膚如雪晰赞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天选侨,我揣著相機與錄音掖鱼,去河邊找鬼。 笑死侵俗,一個胖子當(dāng)著我的面吹牛锨用,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播隘谣,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼增拥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寻歧?” 一聲冷哼從身側(cè)響起掌栅,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎码泛,沒想到半個月后猾封,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡噪珊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年晌缘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痢站。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡磷箕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阵难,到底是詐尸還是另有隱情岳枷,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站空繁,受9級特大地震影響殿衰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盛泡,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一闷祥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饭于,春花似錦蜀踏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至殖熟,卻和暖如春局待,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菱属。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工钳榨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纽门。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓薛耻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赏陵。 傳聞我的和親對象是個殘疾皇子饼齿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,478評論 6 427
  • 〇、前言 本文共108張圖蝙搔,流量黨請慎重缕溉! 歷時1個半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細(xì)梳理了一遍吃型。 ...
    Raxxie閱讀 18,952評論 17 410
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,984評論 1 3
  • 每一個人本應(yīng)該有夢想证鸥,而夢想怎能是空談,我們要落實到行動中勤晚。夢想和現(xiàn)實結(jié)合枉层,給自己一個動力,自然帶動創(chuàng)造力赐写。
    小笨魚王月閱讀 226評論 0 0
  • 葉子凡——如果遇見了返干,我就停下來 (四) 像很多個跌跌撞撞的青春和青澀懵...
    蘇小曉閱讀 428評論 0 5