gpt4 book ai didi

Python:用渐进式数字重命名列表中的重复项而不对列表进行排序

转载 作者:IT老高 更新时间:2023-10-28 20:38:17 25 4
gpt4 key购买 nike

给定这样的列表:

mylist = ["name", "state", "name", "city", "name", "zip", "zip"]

我想通过附加一个数字来重命名重复项以获得以下结果:

mylist = ["name1", "state", "name2", "city", "name3", "zip1", "zip2"]

我不想更改原始列表的顺序。建议的解决方案 related Stack Overflow question对列表进行排序,我不想这样做。

最佳答案

我使用 maplambda 的解决方案:

print map(lambda x: x[1] + str(mylist[:x[0]].count(x[1]) + 1) if mylist.count(x[1]) > 1 else x[1], enumerate(mylist))

更传统的形式

newlist = []
for i, v in enumerate(mylist):
totalcount = mylist.count(v)
count = mylist[:i].count(v)
newlist.append(v + str(count + 1) if totalcount > 1 else v)

最后一个

[v + str(mylist[:i].count(v) + 1) if mylist.count(v) > 1 else v for i, v in enumerate(mylist)]

关于Python:用渐进式数字重命名列表中的重复项而不对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com