所以我有一个字符串列表。我想创建一个新的字符串列表,它将相同的字符串转换为新的字符串并将其命名为“ 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))
然后我不知道如何继续。任何帮助将不胜感激。
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']
['A', 'B', 'A', 'C', 'B', 'D']
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']