gpt4 book ai didi

python - 以 Pythonic 方式将 Excel 或电子表格列字母转换为其编号

转载 作者:太空狗 更新时间:2023-10-29 19:30:34 30 4
gpt4 key购买 nike

是否有更 pythonic 的方法将 excel 样式的列转换为数字(从 1 开始)?

最多两个字母的工作代码:

def column_to_number(c):
"""Return number corresponding to excel-style column."""
number=-25
for l in c:
if not l in string.ascii_letters:
return False
number+=ord(l.upper())-64+25
return number

代码运行:

>>> column_to_number('2')
False
>>> column_to_number('A')
1
>>> column_to_number('AB')
28

三个字母不起作用。

>>> column_to_number('ABA')
54
>>> column_to_number('AAB')
54

引用:question answered in C#

最佳答案

有一种方法可以让它更像 pythonic(使用三个或更多字母并使用更少的魔数(Magic Number)):

def col2num(col):
num = 0
for c in col:
if c in string.ascii_letters:
num = num * 26 + (ord(c.upper()) - ord('A')) + 1
return num

并且作为使用 reduce 的单行代码(不检查输入并且可读性较差,所以我不推荐它):

col2num = lambda col: reduce(lambda x, y: x*26 + y, [ord(c.upper()) - ord('A') + 1 for c in col])

关于python - 以 Pythonic 方式将 Excel 或电子表格列字母转换为其编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7261936/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com