python:如何为字母赋值?
我想为字母表中的每个字母分配一个值,以便 -> 1、b-> 2、c-> 3、...z-> 26. 类似于返回字母值的函数,例如:
value('a') = 1
value('b') = 2
等。 ?
我将如何在 python 中做到这一点
I want to assign a value to each letter in the alphabet, so that a -> 1, b -> 2, c -> 3, ... z -> 26. Something like a function which returns the value of the letter, for example:
value('a') = 1
value('b') = 2
etc...
How would I go about doing this in python?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
使用 字典 作为键:值对。尽管对于像这样的简单映射,可能有一些巧妙的方法可以做到这一点。
Use a dictionary for key:value pairs. Although for a simple mapping like this there are probably some clever ways of doing this.
不需要导入库。你可以使用这个:
It's not necessary to import a library. You can use this:
您应该利用“a”、“b”等后面有 ASCII 值的事实。
因此,你可以这样做:
You should exploit the fact that 'a', 'b', etc. have ASCII values behind them.
Therefore, you could do something like:
为什么不直接列出字母表中的每个字母,然后使用索引值作为返回值
Why not just make a list of each letter in the alphabet and then use the index values as the return value
这个怎么样?
How about this?
您可以使用 ord 内置函数。这个功能很好地满足您的需求
You can use ord built-in function. This function well do what you are looking for
你想要一个原生的 python 字典。
(您可能还希望您的值从“0”开始,而不是从“1”开始,这样您就可以避免在所有映射上添加+1,如下所示)
用此构建一个:
这会给您带来以下结果:
当然,您可能可以使用“ord”内置函数并完全跳过此字典,如其他答案中所示:
或者在 python 3.x 或 2.7 中,您可以使用字典生成器表达式在一次传递中创建字典:
You want a native python dictionary.
(and you probably also want your values to start from"0" not from "1" , so you can void adding a +1 on all your mappings, as bellow)
Build one with this:
This give syou things like:
Of course, you probably could use the "ord" built-in function and skip this dictionary altogether, as in the other answers:
Or in python 3.x or 2.7, you can create the dicionary in a single pass with a dict generator expression:
如果您只想将 ASCII 字母表的字符映射到数字,您可以使用
ord()
然后调整结果:如果您希望这也适用于大写字母:
另外,您可能想要验证参数确实是单个 ASCII 字符:
或者:
If you just want to map characters of the ASCII alphabet to numbers, you can use
ord()
and then adjust the result:If you want this to work for uppercase letters too:
Also, you might want to validate that the argument is indeed a single ASCII character:
Or: