首页 > 解决方案 > Python将char映射到整数

问题描述

我得到了一个洗牌的名单。我如何用数字映射它?

例如下面:

list1('zyxwvutsrq')

我怎样才能映射,以便z=0, y=1, ...

目前我可以像这样映射它

num1 = 0
num2 = 1

char1 = list[num1]
char2 = list[num2]

print(char1 , num1) # output = z

这将正确地给我索引处的字母。但是,如果我想为更大的总和做同样的事情,例如一个 4 位数字4557,我如何在不使用 dict 或集合的情况下打印 vuus 作为输出?我必须拆分45574-num 并将每个转换回 char 吗?或者有更简单的方法吗?

标签: pythonlistmapping

解决方案


选项 1:带循环

  1. 循环数字,每次迭代将当前数字转换为索引int(d)
  2. 获取第一s阶段索引的字母
s = 'zyxwvutsrq'

number = 4557

letters = ''
for d in str(number):
    letters += s[int(d)]

# 'vuus'
print(letters)

选项 2:一个班轮

类似于选项 1,使用将join列表连接到字符串的函数。

magic = ''.join(s[int(d)] for d in str(number))

推荐阅读