如何对字符串列表中的元素进行编号并返回新列表?

问题描述 投票:2回答:3

所以我有一个字符串列表。我想创建一个新的字符串列表,它将相同的字符串转换为新的字符串并将其命名为“ A”。如果列表中有其他字符串,则将其命名为“ B”,依此类推。如果字符串是:

['F4','A3','F4','B5','A3','K2']

然后它应该给我以下结果:

['A','B','A','C','B','D']

我不知道如何启动代码,只能想到像字典这样的东西。

dict = {}
result = []
for line in list1:
    if line not in dict:
       dict.update({line:str(chr(65+len(dict)))})
result.append(dict.get(line))

然后我不知道如何继续。任何帮助将不胜感激。

python string list
3个回答
2
投票
import string from collections import defaultdict keys = iter(string.ascii_uppercase) d = defaultdict(lambda: next(keys)) l = ['F4','A3','F4','B5','A3','K2'] [d[k] for k in l] # ['A', 'B', 'A', 'C', 'B', 'D']

0
投票
输出
['A', 'B', 'A', 'C', 'B', 'D']

0
投票
import string class L: def __init__(self): self.l = {} def __getitem__(self, _v): if (val:=self.l.get(_v)) is not None: return val self.l[_v]= (k:=string.ascii_uppercase[len(self.l)]) return k l = L() vals = ['F4','A3','F4','B5','A3','K2'] result = [l[i] for i in vals]

输出:

['A', 'B', 'A', 'C', 'B', 'D']
© www.soinside.com 2019 - 2024. All rights reserved.