如何为Python列表中的特定重复字符串添加字符?
解决列表重复项添加后缀的问题
你需要给列表中的重复字符串添加数字后缀,比如将['Fulano A', 'Beltrano B', 'Fulano A']处理为['Fulano A', 'Beltrano B', 'Fulano A1'],可以通过以下方法实现:
正确实现代码
使用字典记录每个元素的出现次数,遍历列表时动态生成带后缀的字符串:
nomes_comp = ['Fulano A', 'Beltrano B', 'Fulano A'] contador = {} resultado = [] for nome in nomes_comp: if nome in contador: contador[nome] += 1 resultado.append(f"{nome}{contador[nome]}") else: contador[nome] = 0 resultado.append(nome) nomes_comp = resultado print(nomes_comp) # 输出: ['Fulano A', 'Beltrano B', 'Fulano A1']
代码说明
- 用
contador字典跟踪每个名字的出现次数,第一次遇到名字时计数器设为0,直接保留原字符串; - 后续再次遇到相同名字时,计数器递增,将名字与计数器值拼接后加入结果列表;
- 该方法支持处理多个重复项,比如三个
Fulano A会被处理为Fulano A、Fulano A1、Fulano A2。
你原有代码的问题
你之前的代码逻辑和当前需求不匹配:
for nome in zip(nomes[0], nomes[1]): nomes_comp.append(nome[0] + ' ' + nome[1])
这段代码是在将nomes[0]和nomes[1]两个序列的元素逐一配对拼接,和给重复项添加后缀的需求完全无关,因此无法实现目标。
内容的提问来源于stack exchange,提问作者Pedro Sbaraini Cordeiro
相关产品推荐
相关产品推荐

