關於Python中字符串的去重


Python中set是一個可以自動去重的數據類型,但使用set()方法對其他數據類型進行轉換時往往會遇到順序被打亂的情況,例如:

string = "abcdefacghijkbclm"
print(set(string))
#執行結果
{'e', 'f', 'a', 'l', 'h', 'b', 'j', 'm', 'g', 'c', 'i', 'k', 'd'}

而使用list又不能很好的去重:

string = "abcdefacghijkbclm"
print(list(string))
#執行結果
['a', 'b', 'c', 'd', 'e', 'f', 'a', 'c', 'g', 'h', 'i', 'j', 'k', 'b', 'c', 'l', 'm']

組合來用,並使用sort()進行排序,就可以較好的獲取到一個保持原順序的結果:

string = "abcdefacghijkbclm"
listl = list(string)
lists = list(set(listl))
lists.sort(key=listl.index)
print(lists)
#執行結果
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']

注意sort()中key的使用是保持順序的關鍵

除此之外,也可以對string遍歷去重:

string = "abcdefacghijkbclmb"
res = ""

for i in range(len(string)):
    if (string[i] not in res):
        res = res+string[i]
print (res)
#執行結果
abcdefghijklm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM