2024-09-28 01:27:40 发布
网友
我正在尝试创建一个基于字符串列表的标识号列表。id号将是字符串和连续数字的组合。你知道吗
我的输入列表的一个简短示例:
['N10','N10','N20','N30','N40','N40','N40','N40','N40','N20']
我想再生成一个新的名单的基础上的名称+一个连续的数字,不能有重复在这个名单上。像这样:
['N100','N101','N200','N300','N400','N401','N402','N403','N404','N201']
您可以使用collections.Counter:
collections.Counter
In [38]: import collections In [39]: c = collections.Counter(l) # l is your data
创建唯一<item: iter(range(count[item]))>的查找:
<item: iter(range(count[item]))>
In [44]: lookup = {x : iter(range(c[x])) for x in set(l)}
使用list comp返回该项的下一个计数:
In [45]: [x + str(next(lookup[x])) for x in l] Out[45]: ['N100', 'N101', 'N200', 'N300', 'N400', 'N401', 'N402', 'N403', 'N404', 'N201']
您可以使用
collections.Counter
:创建唯一
<item: iter(range(count[item]))>
的查找:使用list comp返回该项的下一个计数:
相关问题 更多 >
编程相关推荐