這是我有: 包含子列表如何在子列表重複多次時重命名子列表的元素?
A= [['filename.yaml','0001'],['filename.yaml','0001'],['filename.yaml','0001'], ['fname.yaml','0002'], ['fname.yaml','0002']]
我想要的清單是當子列表出現不止一次到每個子列表的第一個元素重新命名。 的出認沽應該是:
[['filename_0.yaml','0001'],['filename_1.yaml','0001'],['filename_2.yaml','0001'], ['fname_0.yaml','0002'], ['fname_1.yaml','0002']]
這是我的代碼:
def asso_name_id(A):
for sublist in A:
if A.count(sublist)>1:
for i in range(A.count(sublist)):
base=os.path.splitext(os.path.basename(sublist[0]))[0]
sublist[0]=base+"_"+str(i)+'.yaml'
這就是我得到這個代碼:
[['filename_0_1_2.yaml', '0001'], ['filename_0_1.yaml', '0001'], ['filename.yaml', '0001'], ['fname_0_1.yaml', '0002'], ['fname.yaml', '0002']]
什麼我做錯了,如何能我修復它?
您需要首先獲取重複元素的索引。有一個很好的建議做這個[這裏](https://stackoverflow.com/a/5419576/3254859)。 –