我有 4 个数字的列表,我需要将其转换为字母列表,并且每组都独立于前一组。然后我想将字母字符串附加到新列表中。例如:
['001', '001', '001', '001'] 转换为 ['A', 'A', 'A', 'A']
['014', '013', '013', '023'] 转换为 ['A', 'B', 'B', 'C']
['001', '001', '001', '003'] 转换为 ['A', 'A', 'A', 'B']
['001', '001', '001', '004'] 转换为 ['A', 'A', 'A', 'B']
Polymer_data = Polymer_data.sort_values(['ID'])
for i in Polymer_data.ID:
print(i.split('-'))
['001', '001', '001', '001']
['001', '001', '001', '002']
['001', '001', '001', '003']
['001', '001', '001', '004']
...
['025', '022', '024', '025']
['025', '023', '024', '025']
['025', '024', '024', '025']
['025', '025', '025', '025']
预期结果应该是:
['A', 'A', 'A', 'A']
['A', 'A', 'A', 'B']
['A', 'A', 'A', 'B']
['A', 'A', 'A', 'B']
...
['A', 'B', 'C', 'A']
['A', 'B', 'C', 'A']
['A', 'B', 'B', 'A']
['A', 'A', 'A', 'A']
编辑:为了澄清每个列表是相互独立的,因此每个列表中的第一个唯一值被分配为“A”,第二个唯一值被分配为“B”,依此类推。
此外,值的范围是从 001-025,“...”代表我没有写出的所有值(不知道如何格式化)。因此,从 001-025 总共有 195625 种可能的组合,以 4 的模式排列。
最佳答案
- 使用
ord
从“A”获取代码编号 - 清除原始列表中重复的项目
- 获取“A”中的代码并将其添加到代码中
- 使用
chr
将其转换为字符
从这个示例代码中您可以理解如下:
lists = [['001', '001', '001', '002', '001', '003'],
['021', '022', '020', '021', '025', '022']]
result = []
for lista in lists:
code = ord('A')
listb = list(set(lista))
listb.sort()
result.append([chr(listb.index(x)+code) for x in lista])
print (result)
结果是
[['A', 'A', 'A', 'B', 'A', 'C'], ['B', 'C', 'A', 'B', 'D', 'C']]
关于python - 如何在数字列表中找到常见数字并将其分配给字母,然后追加以显示字母字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56560340/