重命名列表中的重複項可能是一個難以解決的問題,因為它需要您識別重複項,然後決定如何重命名它們。 如果列表包含許多元素或元素是複雜對象,這可能尤其具有挑戰性。 此外,重命名重複項可能需要您修改依賴於元素原始名稱的代碼的其他部分,以便它們繼續正常運行。
def rename_duplicates(lst): seen = set() new_lst = [] for item in lst: if item not in seen: seen.add(item) new_lst.append(item) else: new_item = item + '_1' # append a suffix to make it unique while new_item in seen: # increment the suffix until it's unique suffix = int(new_item.split('_')[-1]) + 1 # get the last number and add one to it new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix) seen.add(new_item) # add the newly created item to the set of seen items new_lst.append(new_item) # append the newly created item to the list return new
_lst
# 這段代碼定義了一個名為 rename_duplicates 的函數,它接受一個列表作為參數。
def rename_duplicates(lst):
# 然後它創建一個名為 seen 的空集和一個名為 new_lst 的空列表。
看到= set()
新_lst = []
# 然後它遍歷列表中的項目並檢查它們是否已經在可見項目集中。
對於 lst 中的項目:
if item not in seen: # 如果不是,則將其添加到可見項集合中並將其附加到新列表中。
seen.add(項目)
new_lst.append(item) # 如果是,它通過在其名稱中添加後綴(例如,'_1')來創建該項目的唯一版本,並檢查這個新創建的項目是否已經在可見項目集中。
else: # 如果是這樣,它將增加後綴,直到找到該項目名稱的未使用版本,並將這個新創建的項目添加到可見項目集和新列表中,然後在執行結束時返回這個新列表。
new_item = 項目 + '_1'
while new_item in seen: # 遞增後綴直到唯一
suffix = int(new_item.split('_')[-1]) + 1 # 獲取最後一個數字並加一
new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), 後綴)
看到。添加(新
Python 中的列表
Python 中的列表是最常用的數據結構之一。 它們用於存儲項目的集合,可以是任何類型,包括其他列表。 列表是可變的,這意味著它們可以在創建後更改。 它們還支持索引、切片和連接等操作。
要在 Python 中創建列表,您可以使用方括號並用逗號分隔每個項目:
我的列表 = [1, 2, 3]
您可以使用索引訪問列表中的各個元素:
my_list[0] # 返回 1
my_list[1] # 返回 2
my_list[2] # 返回 3
您還可以使用負索引從列表末尾訪問元素:
my_list[-1] # 返回 3(最後一個元素)
您可以使用 append() 方法將項目添加到列表中:
my_list.append(4) # 將 4 添加到列表的末尾
您可以使用 remove() 或 pop() 方法從列表中刪除項目:
my_list.remove(3) # 從列表中刪除 3
my_list.pop(2) # 從列表中移除並返回 2(第三個元素)
在 Python 中重命名列表中的重複項
在 Python 中重命名列表中的重複項是處理列表時的常見任務。 它涉及用唯一值替換列表中的重複元素。 這可以使用 set() 函數來完成,該函數從列表中刪除所有重複元素並返回一個僅包含唯一元素的新列表。 set() 函數也可用於重命名重複項,方法是為其提供舊值到新值的映射。 例如,如果您有一個數字列表並想用它們各自的方塊替換所有重複項,您可以使用以下代碼:
# 創建一個空字典
映射 = {}
# 遍歷原始列表
對於 my_list 中的項目:
# 檢查字典中是否已經存在item
如果項目不在映射中:
# 如果不是,將其添加到字典中並將其平方作為值
映射[項目] = 項目 * 項目
# 創建一個空的結果列表
結果列表 = []
# 再次遍歷原始列表並用字典中的正方形替換每個元素 for i in my_list: result_list.append(mapping[i])
# 打印結果 print(result_list)