14 个答案:

答案 0 :(得分:71)

这样的事情:

print [ord(char) - 96 for char in raw_input('Write Text: ').lower()]

修改强>

既然你让我解释我会...虽然已经在[?]的评论中得到了很好的解释。

让我们在更多的一行开始。

input = raw_input('Write Text: ')

input = input.lower()

output = []

for character in input:

number = ord(character) - 96

output.append(number)

print output

这也是一样的,但更具可读性。在您尝试理解我的第一个答案之前,请确保您能够理解这里发生了什么。这里的一切都非常标准,简单的Python。需要注意的一件事是ord函数。 ord代表序数,几乎每种高级语言都有这种功能。它为您提供了任何角色的数字表示的映射。 ord的反函数称为chr。

chr(ord('x')) == 'x' # for any character, not just x.

如果你自己测试,a的序数是97(我上面发布的第三个链接将显示完整的ASCII字符集。)每个小写字母的范围是97-122(26个字符。)所以,如果你只需从任何小写字母的序数中减去96,你将得到它在字母表中的位置,假设你取'a'== 1.所以,序数为'b'== 98,'c'== 99,等等当你减去96,'b'== 2,'c'== 3等等。

我发布的初始解决方案的其余部分只是一些Python技巧,你可以学习称为列表理解。但是,我不会专注于那个,而是专注于学习用任何语言解决问题,其中ord是你的朋友。我希望这会有所帮助。

答案 1 :(得分:11)

您可以使用chr()和ord()来转换字母和整数。

这是一个简单的例子。

>>> chr(97)

'a'

>>> ord('a')

97

答案 2 :(得分:8)

如果您打算大量使用此转换,请考虑计算一次并将结果放入字典中:

>>> import string

>>> di=dict(zip(string.letters,[ord(c)%32 for c in string.letters]))

>>> di['c']

3

优点是字典查找非常快,而不是在每次调用时遍历列表。

>>> for c in sorted(di.keys()):

>>> print "{0}:{1} ".format(c, di[c])

# what you would expect....

答案 3 :(得分:8)

不要太基础,但是这个:

>>> char1 = ['a''b''c''d''e''f''g''h''i''j''k''l'

'm''n''o''p''q''r''s''t''u''v''w''x''y''z']

与此非常不同:

>>> char2 = ['a','b','c','d','e','f','g','h','i','j','k','l',

'm','n','o','p','q','r','s','t','u','v','w','x','y','z']

第一个,没有逗号和你的问题中的内容,是一个带有26个元素字符串的单元素列表。第二个是26个元素列表,每个列表的长度都是一个字符。

如果您打印每个:

>>> print char1, len(char1), len(char1[0])

['abcdefghijklmnopqrstuvwxyz'] 1 26

>>> print char2, len(char2), len(char2[0])

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',

'm', 'n', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 26 1

很明显,需要额外的一步才能将char1的个别字符转换为iterable。

如果你有sequence个字符'a'到'z'和/或'A'到'Z',你可以轻松返回list comprehension字符的数字:

>>> [ord(x)%32 for x in char2]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

17, 18, 19, 20, 21, 22, 23, 24, 25, 26]

对于您拥有的数据结构类型,您需要首先访问该字符串:

>>> [ord(x)%32 for x in char1[0]]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

17, 18, 19, 20, 21, 22, 23, 24, 25, 26]

因此,如果您的代码清单与您的问题相同,则可能是您的问题。

合理的替代方案是:[ord(x.lower())-96 for x in char1[0]]

您可以看到,没有逗号的characters=['a''b''c'...]与在['abc...']列表中输入字符串中的所有字符相同。

所以现在尝试:

>>> import string

>>> [ord(x.lower())-96 for x in string.letters]

[1,2,...26, 1,2,3...26] # my ellipses

>>> char3=[string.letters] # one string as element[0]

>>> [ord(x)%32 for x in char3[0]]

>>> [ord(x)%32 for x in [string.letters][0]]

答案 4 :(得分:6)

这是我过去常用的功能。适用于大写和小写。

def convert_char(old):

if len(old) != 1:

return 0

new = ord(old)

if 65 <= new <= 90:

# Upper case letter

return new - 64

elif 97 <= new <= 122:

# Lower case letter

return new - 96

# Unrecognized character

return 0

答案 5 :(得分:5)

[str(ord(c)&31) for c in text]

答案 6 :(得分:2)

这里有一些我用来将excel列字母转换成数字的东西(所以限制为3个字母,但如果你需要更多的话,很容易将它扩展出来)。可能不是最好的方式,但它适用于我需要它。

def letter_to_number(letters):

letters = letters.lower()

dictionary = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11,'l':12,'m':13,'n':14,'o':15,'p':16,'q':17,'r':18,'s':19,'t':20,'u':21,'v':22,'w':23,'x':24,'y':25,'z':26}

strlen = len(letters)

if strlen == 1:

number = dictionary[letters]

elif strlen == 2:

first_letter = letters[0]

first_number = dictionary[first_letter]

second_letter = letters[1]

second_number = dictionary[second_letter]

number = (first_number * 26) + second_number

elif strlen == 3:

first_letter = letters[0]

first_number = dictionary[first_letter]

second_letter = letters[1]

second_number = dictionary[second_letter]

third_letter = letters[2]

third_number = dictionary[third_letter]

number = (first_number * 26 * 26) + (second_number * 26) + third_number

return number

答案 7 :(得分:2)

>>> [str(ord(string.lower(c)) - ord('a') + 1) for c in string.letters]

['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17',

'18', '19', '20', '21', '22', '23', '24', '25', '26', '1', '2', '3', '4', '5', '6', '7', '8',

'9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24',

'25', '26']

答案 8 :(得分:2)

def letter_to_int(letter):

alphabet = list('abcdefghijklmnopqrstuvwxyz')

return alphabet.index(letter) + 1

这里,如果列表包含x,则index(x)函数返回x的位置值。

答案 9 :(得分:1)

如果目标只是转换字母abcd .... xyz和ABCD .... XYZ,我会使用一个函数:

from string import letters

def rank(x, d = dict((letr,n%26+1) for n,letr in enumerate(letters[0:52]))):

return d[x]

我写了[0:52]因为我的Python 2.7版本显示了值

* ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz *ƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ

表示string.letters参数。

因为参数d接收一个值作为默认参数,所以在执行函数定义以生成函数对象时,此值的微积分仅执行一次。

因此,即使该函数被上诉了三千次,也可以在不重新计算该值的情况下使用该函数。

顺便说一下,对于函数的每个上诉,不再使用lower()。在构造默认参数期间,已经处理了大写字母的情况。

使用的一个例子:

word = 'supercalifragilisticexpialidocious'

print ''.join( letter if rank(letter)%3!=0 else '.' for letter in word)

结果:

s.pe..a .... AG ... st..e.p.a..d .....小号

它也可以与map()一起使用:

print map(rank,'ImmunoElectroPhoresis')

结果:

[9,13,13,21,14,15,5,12,5,3,20,18,15,16,8,15,18,5,19,9,19]

答案 10 :(得分:1)

如果您只想将数字映射到一个字母,那么只需执行以下简单的操作:

def letter_to_index(letter):

_alphabet = 'abcdefghijklmnopqrstuvwxyz'

return next((i for i, _letter in enumerate(_alphabet) if _letter == letter), None)

当然如果你想让它从1开始,那么只需添加(i + 1代表我,等等。

答案 11 :(得分:1)

使用此功能。它将一串字母表转换为其等效的数字值:

axis = (^-^) candle^.high candle^.low

答案 12 :(得分:1)

如果您正在查看相反的内容,例如1 = A,2 = B等,则可以使用以下代码。请注意,由于我必须将班级中的部门转换为A,B,C等,因此我最多只能达到2级。

loopvariable = 0

numberofdivisions = 53

while (loopvariable

if(loopvariable<26):

print(chr(65+loopvariable))

loopvariable +=1

if(loopvariable > 26 and loopvariable <53):

print(chr(65)+chr(65+(loopvariable-27)))

答案 13 :(得分:0)

这是我的解决方案,您希望将字母表中的所有字母转换为英文字母中这些字母的位置,并返回这些字符串。

如果您想详细了解它,请告诉我。我使用了以下概念

- 列表理解

- 字典理解

python字母变成数字怎么办_在Python中将字母转换为数字相关推荐

  1. c++ascii码转换为数字_在C++中将字符串转换为数字

    有许多情况需要将数字转换为字符串或将字符串转换为数字.本文中提到了一些实现此任务的方法. 将字符串转换为数字 方法1:使用stringstream类或sscanf() 方法2:使用stoi()或ato ...

  2. java 将单词转换为_在Java中将单词转换为数字

    我已经看到很多算法,你给它们一个数字说"123",它将它转换为123.但我似乎无法找到相反的东西,而我确实找到的只能达到数字1000,任何人都可以用正确的方式指导我,因为我可以做的 ...

  3. mysql查询出的数据转换为数字,关于sql:在MySQL查询中将文本转换为数字

    是否可以在MySQL查询中将文本转换为数字? 我有一列带有标识符的列,该标识符由名称和数字组成,格式为"名称-数字". 该列具有VARCHAR类型. 我想根据数字(具有相同名称的行 ...

  4. C++中将字符串转换为数字

    C++中将字符串转换为数字 法一: int t = s[len - 1]-'0';//减去一个 '0' 是 将最后一位字母转换成数字 例如:这个判断基偶性就是为了防止越界所以将数组转换为数组传入,再将 ...

  5. 在javascript中将字符串转换为数字的6种方法

    在javascript中,数字可以用两种不同的方式表示, 1.作为实际数字. 2. 作为字符串 . 很多时候,我们需要在javascript中将字符串转换为数字. 我们将看到6种不同的方法可以将字符串 ...

  6. python命令数字雨_用Python实现黑客帝国代码雨效果(3种方式)

    说起电影<黑客帝国>,相信大部分人都看过或听说过,影片中有一个场景数字雨,如果你看过电影的话,应该对这个经典场景印象深刻,本文我们利用 Python 以数字.字母.图片三种形式来实现这一效 ...

  7. python中颜色介意用数字表示_利用Python实现颜色色值转换的小工具

    先看看Zeplin 的颜色色值显示示例 原有处理方式 因为我会 Python (仅限于终端输入 python 然后当做计算器算,或者用 hex() 函数把十进制转换成十六进制),所以遇到这样的问题我当 ...

  8. python求和函数详解_关于python:对多个数字求和的函数

    本问题已经有最佳答案,请猛点这里访问. 我刚接触到Python,开始学习执行函数.我开始添加数字,但我只能求和两个数字,如果我想求和更多,就需要编辑程序.这是我的密码 1 2 3 4 5 6 7def ...

  9. python数字切片_剖析python切片「:」「::-1」「-1::」

    剖析python切片[:][::-1][-1::] 我们在面试python相关职位时,总是会碰到一些面试python切片的试题,另外在解决某些问题时也经常会用到切片操作,因此勇哥在这里给大家详细介绍p ...

  10. python十大必备知识_学Python必备的基础知识

    学Python必备的基础知识 1.基本概念 表达式:就是一个类似于数学公式的东西,一般仅仅用了计算一些结果 ,不会对程序产生实质性的影响,如9+3; 语句:在程序中语句一般需要完成某种功能,比如打印信 ...

最新文章

  1. 我去,你写的 switch 语句也太老土了吧
  2. PTA数据结构与算法题目集(中文)7-25
  3. 鸿蒙系统2.0什么时候上线,华为官方:鸿蒙系统2.0上线,手机能否搭载鸿蒙操作系统?...
  4. 第六届蓝桥杯省赛javaB组真题及答案
  5. cocos cr躲避类游戏的暂停、继续、重新开始_社团班级团建游戏活动安排
  6. python循环结束执行后面代码_计算机程序中某种代码的反复执行,称为________。Python中的循环有重复一定次数的________,也有重复到某种情况结束的________。...
  7. cups支持的打印机列表_网络存储让你的打印机瞬间变无线,打印文件不用愁
  8. Git 切换提交历史节点
  9. [源码]java.lang.reflect.Proxy
  10. 2017.9.17 相关分析 思考记录
  11. matlab PID学习
  12. 网站检测-网站检测软件-免费网站安全检测工具
  13. 嘉兴 机器人仓库 菜鸟_菜鸟在嘉兴推出全新智能仓 宣布将在双11启用超级机器人仓群...
  14. 主板烧糊,大短路,不开机且烧糊成碳了还会导电
  15. Kubernetes K8s 结合国内外文章解决 The kubelet is not running
  16. 亿道丨三防平板丨工业平板丨比消费类平板好在哪?
  17. 煤矿用计算机,计算机技术在煤矿安全生产中应用
  18. 4.12.4nbsp;约翰bull;梅纳德bull;凯恩斯
  19. vivoxfold和华为matex2哪个值得买 两者配置对比
  20. 友盟推送点击行为处理

热门文章

  1. paypal创建订单后怎么获得id_5步创建Facebook商店(最新版教程)学习如何在Facebook上卖货...
  2. python 远程控制_用 Python 远程控制你的电脑
  3. linux怎么添加头文件目录下,linux下编写c++,include的那些头文件在什么地方?
  4. css 涟漪,CSS3水波涟漪动画定位样式如何制作
  5. 清华计算机接口原理,微机原理与接口技术课后习题答案清华大学
  6. Php公钥加密data是空,php 生成加密公钥加密私钥实例详解
  7. 【SSM面向CRUD编程专栏 7】springAop 事务控制
  8. JS事件的捕获和冒泡阶段
  9. Mac 设置 NDK
  10. 华大基因茅矛:云计算让精准医疗走进生活