基于字符串列表中的出现创建序列号,然后进行配对

2024-09-28 01:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个基于字符串列表的标识号列表。id号将是字符串和连续数字的组合。你知道吗

我的输入列表的一个简短示例:

['N10','N10','N20','N30','N40','N40','N40','N40','N40','N20']

我想再生成一个新的名单的基础上的名称+一个连续的数字,不能有重复在这个名单上。像这样:

['N100','N101','N200','N300','N400','N401','N402','N403','N404','N201']

Tags: 字符串名称id示例列表数字基础名单
1条回答
网友
1楼 · 发布于 2024-09-28 01:27:40

您可以使用collections.Counter

In [38]: import collections 

In [39]: c = collections.Counter(l) # l is your data

创建唯一<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']

相关问题 更多 >

    热门问题