python中将数字转换为字符串的列表/听写理解出错

python中将数字转换为字符串的列表/听写理解出错,python,jupyter-notebook,dictionary-comprehension,Python,Jupyter Notebook,Dictionary Comprehension,给定 我想将此数字列表转换为一个文本字符串: letters = "abcdefghijklmnopqrstuvwxyz" 这个想法是数字7代表字母表中第七个字母的字母。这意味着1将与“a”对应,因为它是第一个字母 我编写了以下代码: numbers = [8, 5, 12, 12, 15, 23, 15, 18, 12, 4] 好吗?有什么错误吗?如果是,在哪里?不需要字典或枚举。只需使用字符串字母中元素的索引即可 letters = "abcdefghijklmnopqrstuvwxyz

给定

我想将此数字列表转换为一个文本字符串:

letters = "abcdefghijklmnopqrstuvwxyz"
这个想法是数字7代表字母表中第七个字母的字母。这意味着1将与“a”对应,因为它是第一个字母

我编写了以下代码:

numbers = [8, 5, 12, 12, 15, 23, 15, 18, 12, 4]

好吗?有什么错误吗?如果是,在哪里?

不需要字典或枚举。只需使用字符串
字母
中元素的索引即可

letters = "abcdefghijklmnopqrstuvwxyz"

numbers = [8, 5, 12, 12, 15, 23, 15, 18, 12, 4]

text = ''.join([{i: c for i, c in enumerate(letters)}[x] for x in numbers])
试试这个

text = ''.join([letters[n-1] for n in numbers])

在Python中,列表是基于0的索引<代码>字母[7-1]给出字母表中的第七个字母

此外,您不需要使用枚举或字典理解

letters=“abcdefghijklmnopqrstuvxyz”
数字=[8,5,12,12,15,23,15,18,12,4]
text=''.join(字母[n-1]表示数字中的n)
打印(文本)
#地狱世界

在Python索引中,从0开始,A的索引是0,B是1…等等。 所以如果你想打印J,那么索引应该是9

>>> letters = "abcdefghijklmnopqrstuvwxyz"

>>> numbers = [8, 5, 12, 12, 15, 23, 15, 18, 12, 4]

 >>> "".join((letters[n-1] for n in numbers))

'helloworld'

输出:HELLOWORLD

索引值——以及默认情况下从
枚举
获得的值——从0开始,而不是从1开始。
{i:c代表i,枚举(字母)中的c}[x]
是编写
字母[x]
的一种非常复杂的方法。注意,您还可以从string.ascii_小写字母导入“abcdefghijjjklmnopqrstuvwxyz”。@RemcoGerlich是,我试过了。string.ascii_小写也可以(导入字符串)他们说“1将对应于“a”而不是0你现在和henry的一样(不是我的反对票顺便说一句)实际上不需要[],生成器表达式在我看来更简单。@RemcoGerlich是的,你是对的。使用生成器表达式更新了逻辑。谢谢你的指点。别忘了-1!字符串中的索引是0,而不是1。
letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
numbers = [8, 5, 12, 12, 15, 23, 15, 18, 12, 4]
word = "".join(letters[num-1] for num in numbers) # getting letters with index -1
print(word)