【发布时间】:2021-04-21 15:49:30
【问题描述】:
我写了一些运行良好的代码,但我想让它更精确。
这个想法是添加一个字母来显示列表中元素的出现。初始列表如下所示
['1','2','1','2','1']
我想要
['1a','2a','1b','2b','1c']
我确信有一个快速的答案或功能可以做到这一点,有人知道吗?
我的代码如下:
ancestrals = ['1','2','1','2','1']
uni_a = list(set(ancestrals))
for i in range(len(ancestrals)):
tmp = uni_a.index(ancestrals[i])
if uni_a[tmp][-1].isalpha():
val = ancestrals[i][:1] + chr(ord(uni_a[tmp][-1])+1)
else:
val = ancestrals[i] + "a"
ancestrals[i] = val
while uni_a[tmp] in ancestrals[i:]:
p = ancestrals[i:].index(uni_a[tmp])+ i
ancestrals[p] = val
uni_a[tmp] = ancestrals[i]
print(ancestrals)
【问题讨论】:
-
如果您的代码有效,但您想查看替代解决方案,那么Code Review Stack Exchange 可能是更好的选择。我也没有投反对票。
-
谢谢@JustinEzequiel,我不知道这个社区,以后会问!