字符串去重

在平時的工作中,處理重復(fù)數(shù)據(jù)不可避免,在大數(shù)據(jù)時代更是有著海量的數(shù)據(jù),如果不對數(shù)據(jù)進(jìn)行去重,會嚴(yán)重影響分析效率。因而,我們在進(jìn)行大數(shù)據(jù)分析時的第一步就是檢測和消除其中的重復(fù)數(shù)據(jù),通過數(shù)據(jù)去重,一方面可以減少存儲的空間和網(wǎng)絡(luò)帶寬的占用;另一方面可以減少數(shù)據(jù)的分析量。在工作中,遇到最多的就是字符串和列表的去重,下面介紹幾種字符串的去重方法:
1.通過for循環(huán)遍歷字符串去重

str='abcdefaaffegecdh'
new_str=''
for i in str:
    if i not in new_str:  #如果不在結(jié)果字符串中
        new_str += i    #添加到結(jié)果字符串的末尾
print (new_str)

output:
abcdefgh

2.通過while循環(huán)遍歷字符串去重

str='abcdefaaffegecdh'
new_str=''
i = len(str)-1  #獲取字符串的長度-1,即最大索引值
while True:
    if i >=0:  #如果還超出索引范圍
        if str[i] not in new_str:
            new_str += (str[i])
        i-=1
    else:      #超出索引范圍則結(jié)束循環(huán)
        break
print (new_str)

output:
hdcegfab

3.使用列表的方法去重

str='abcdefaaffegecdh'
str1=set(str)  #轉(zhuǎn)換為集合,則去除重復(fù)元素
print(str1)

new_str = list(set(str))  #將集合轉(zhuǎn)換為列表
print('_'.join(new_str))   #將列表連接為字符串并輸出

new_str.sort(key=str.index)  #對列表排序
print(new_str)
print(''.join(new_str))   #將排序后的列表連接為字符串并輸出

output:
{'e', 'b', 'g', 'f', 'a', 'h', 'c', 'd'}
e_b_g_f_a_h_c_d
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
abcdefgh

4.在原字符串中直接刪除

str='abcdefaaffegecdh'
len = len(str)        # 字符串下標(biāo)總長度
for s in str:
    if str[0] in str[1:len]:
        str = str[1:len]
    else:
        str= str[1:len]+str[0]
print(str)

output:
bafgecdh

5.使用fromkeys()方法把字符串轉(zhuǎn)換成字典

str='abcdefaaffegecdh'
dict={}.fromkeys(str)
mylist=list(dict.keys())

mylist = list({}.fromkeys(str).keys())
print(mylist)
print ('_'.join(mylist))

output:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
a_b_c_d_e_f_g_h

參考資料:《python編程錦囊》明日科技。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 8,067評論 0 4
  • 公元:2019年11月28日19時42分農(nóng)歷:二零一九年 十一月 初三日 戌時干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 7,508評論 0 2
  • 今天上午陪老媽看病,下午健身房跑步,晚上想想今天還沒有斷舍離,馬上做,衣架和旁邊的的布衣架,一看亂亂,又想想自己是...
    影子3623253閱讀 3,076評論 3 8

友情鏈接更多精彩內(nèi)容