python获取字母在字母表对应位置的几种方法及性能对比较

python获取字母在字母表对应位置的几种方法及性能对比较

某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://projecteuler.net/problem=42 其中一步解题步骤就是需要把字母换算成字母表中对应的顺序。

获取字母在字母表对应位置的方法,最容易想到的实现的是:

使用str.index 或者str.find方法:

In [137]: "ABC".index('B')
Out[137]: 1

In [138]: "ABC".index('B')+1
Out[138]: 2

#或者在前面填充一个字符,这样index就直接得到字母序号:
In [139]: "_ABC".index("B")
Out[139]: 2

我还想到把字母表转成list或者tuple再index,性能或者会有提高? 或者把字母:数字 组成键值存到字典中是个好办法?

前两天我还自己顿悟到了一个方法:

In [140]: ord('B')-64
Out[140]: 2

ord 和chr 都是python中的内置函数,ord可以把ASCII字符转成对应在ASCII表中的序号,chr则是可以把序号转成字符串。

大写字母中在表中是从65开始,减掉64刚好是大写字母在表中的位置。 小写字母是从97开始,减于96就是对应的字母表位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值