python - 如何在数字列表中找到常见数字并将其分配给字母,然后追加以显示字母字符串?

标签 python list

我有 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 的模式排列。

最佳答案

  1. 使用 ord 从“A”获取代码编号
  2. 清除原始列表中重复的项目
  3. 获取“A”中的代码并将其添加到代码中
  4. 使用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/

相关文章:

python - 如何将字符串转换为列表?

python - 无法抓取页面的同一部分,唯一的区别是 div 和 span

python - 带有负值的 Numpy reshape

python - 如何在pyparsing中省略重复项?

list - 如何修改嵌套自定义数据类型中的列表值?

python - For 循环不会遍历所有对象

python - 在运行时将文件中的每个段落读取到多个列表中

python - Django Form 不从类 HomeForm 渲染 HTML

python - 如何将相关矩阵绘制为一组椭圆,类似于 R 露天包?

java - 有什么方法可以从包含 HashMap 的 ArrayList 的 HashMap 中获取值列表吗?