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

标签 python string list

所以我有一个字符串列表。我想创建一个新的字符串列表,将相同的字符串变成一个新的字符串并将其命名为“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))

那我就不知道怎么继续了。任何帮助将不胜感激。

最佳答案

你可以创建一个ascii upper-case的迭代器字符串并在 defaultdict 中一次一个地拉下它们构造函数。你有那个,它只是一个列表理解。像这样的东西:

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']

关于python - 如何对字符串列表中的元素进行编号并返回一个新列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61092121/

相关文章:

python - 格式化来自curl命令的python PATCH请求

python - 更改特定列中的值(pandas)

python - 在 html 表单中输入 Integer 时抛出 BadValueError

c++ - 将 uint8_t* data_chars 和长度转换为等效的字符串

python - Pandas 比较列表的列

python 检查一个列表与另一个列表

python - 是否有可能在执行前知道变量是否会被 ast Python 更改?

java - 字符串数组中的错误 indexOf

C# : Distinctions between various <string, 字符串> 集合

java - 如何有效(性能)从Java中的列表中删除许多项?