我需要對數千個字串(每個字串都是串列中的一個元素,從 SQL 表中的記錄匯入)進行一些處理。
每個字串包含由一致定界符分隔的多個短語。我需要 1) 消除字串中的重復短語;2) 對剩余的短語進行排序,并以分隔字串的形式回傳去重、排序的短語。
這是我想出來的:
def dedupe_and_sort(list_element, delimiter):
list_element = delimiter.join(set(list_element.split(f'{delimiter}')))
return( delimiter.join(sorted(list_element.split(f'{delimiter}'))) )
string_input = 'e\\\\a\\\\c\\\\b\\\\a\\\\b\\\\c\\\\a\\\\b\\\\d'
string_delimiter = "\\\\"
output = dedupe_and_sort(string_input, string_delimiter)
print(f"Input: {string_input}")
print(f"Output: {output}")
輸出如下:
Input: e\\a\\c\\b\\a\\b\\c\\a\\b\\d
Output: a\\b\\c\\d\\e
這是最有效的方法還是有其他更有效的方法?
uj5u.com熱心網友回復:
您可以避免拆分兩次(只是不要在第一步中加入),并且在傳遞delimiter給split().
def dedupe_and_sort(list_element, delimiter):
distinct_elements = set(list_element.split(delimiter))
return delimiter.join(sorted(distinct_elements))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402989.html
標籤:
上一篇:字串到python中的單個位元組
