【问题标题】:Code golf! Is there a simple way to convert letters to numbers in Python?编码高尔夫!有没有一种简单的方法可以在 Python 中将字母转换为数字?
【发布时间】:2015-03-18 01:16:30
【问题描述】:

你知道,比如 A = 1、B = 2 等。我可以列出一长串 if-then,但也许已经有一个模块了。

如果它像在“Excel 坐标”中一样工作,其中 AA = 27 并继续,则奖励。 (这算作 base26 数字吗?)

【问题讨论】:

标签: python function module converter


【解决方案1】:
def foo(c):
    return ord(c) - 64

foo('A')

1

foo('B')

2

在我的头顶上:p

【讨论】:

  • 不错!注意到它需要大写锁定...我是 n00b,“ord(thing.upper())”行是否有效?
  • 当然,这会使它正常化。 "a".upper() => "A" 和 "A".upper() => "A"。基本上,它总是会产生一个大写字母
【解决方案2】:
from string import ascii_uppercase
letterKey = dict(list(zip( ascii_uppercase, range(1, 27))))

至于 excel 线:

geExceltValue = lambda string: sum([26**i * list(reversed(map(lambda x: letterKey[x], string)))[i] for i in range(len(string))])

print geExceltValue("AA")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多