devices = [
'SWTEST1-3AA-02',
'SWTEST1-3AA-02',
'SWTEST1-2CA-01',
'SWTEST1-2CA-01',
'SWTEST1-2AA-02',
'SWTEST1-2AA-02',
'SWTEST1-2AA-02'
]
我正在寻找的输出如下
[
'SWTEST1-3AA-02',
'SWTEST1-3AA-02-2',
'SWTEST1-2CA-01',
'SWTEST1-2CA-01-2',
'SWTEST1-2AA-02',
'SWTEST1-2AA-02-2',
'SWTEST1-2AA-02-3'
]
我尝试了一个for循环和一个计数器,但我没有得到我想要的结果,任何帮助都将不胜感激
对于我尝试的循环:
counter = 1
out = []
for e in devices:
out.append(f"{e}-{counter}")
counter += 1
print(out)
out = []
d = {}
for i in devices:
counter = 1
d.setdefault(i, -1)
d[i] += 1
if d[i] >= 1:
out.append('{}-{}'.format(i, d[i]))
counter += 1
else:
out.append(i)
print(out)
如果您不关心保留列表的原始顺序,那么类似的方法会起作用(而且很好,很简单,在线性时间内工作)
另一个解决方案:
印刷品:
您可以使用列表:
输出:
相关问题 更多 >
编程相关推荐