如何完成以下工作?
characters = ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''t''u''v''w''x''y''z']
numbers = ['1''2''3''4''5''6''7''8''9''10''11''12''13''14''15''16''17''18''19''20''21''22''23''24']
text = raw_input(' Write text: ')
我试过很多方法来解决这个问题,但都没法解决。我想让exc。如果我键入“hello”,输出将以数字的形式排列,就像字母表一样。字母表中的示例a=1<。
可以使用chr()和ord()在字母和整数之间进行转换。
这里有一个简单的例子。
像这样的事情呢:
ord
list comprehension
ASCII character codes
编辑
既然你让我解释我会。。。尽管在评论中已经有很好的解释了[?].
让我们从这一行开始。
这做了同样的事情,但更可读。在你试图理解我的第一个答案之前,一定要弄清楚这里发生了什么。这里的一切都很标准,简单的Python。需要注意的是
ord
函数。ord代表序数,几乎每种高级语言都有这种类型的函数可用。它给你一个映射到任何字符的数字表示。ord的逆函数称为chr。如果你自己测试,a的序数是97(我在上面发布的第三个链接将显示完整的ASCII字符集)。每个小写字母都在97-122(26个字符)的范围内。因此,如果你只是从任何小写字母的序数中减去96,你将得到它在字母表中的位置,假设你取“a”==1。所以,当你减去96,'b'==2,'c'==3,等等时,序数是'b'==98,'c'==99
我发布的最初解决方案的其余部分只是一些Python技巧,您可以学习称为列表理解。但是,我不会像专注于学习在任何语言中解决问题那样专注于这个问题,因为ord是你的朋友。我希望这能有帮助。
如果要大量使用此转换,请考虑计算一次并将结果放入字典:
其优点是字典查找比每次调用时遍历列表都要快。
相关问题 更多 >
编程相关推荐