还有一种将excel样式的列转换为数字(以1开头)的更pythonic的方法吗?
工作代码最多两个字母:
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
有一种方法可以使其变得更pythonic(可使用三个或更多字母,并使用较少的幻数):
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])
问题内容: 我正在寻找与该问答相反的方法:将excel或电子表格列字母转换为Pythonic格式的数字。 或这个,但在python中如何将列号(例如127)转换为excel列(例如AA) 问题答案: def colnum_string(n): string = “” while n > 0: n, remainder = divmod(n - 1, 26) string = chr(65 + re
问题内容: 有哪些工具可将OpenOffice或Excel电子表格(及其所有公式)转换为可在运行时调用的Java对象? 显然,这只会构成一个计算引擎,而只是数字和文本,而不是计时或API调用。 即使使用命名的单元格范围来(有效)命名变量,输出代码也可能难以理解。需要进行重构以使其更像普通的Java代码。但是,我认为这对原型某些数据处理类型的作业非常有用。或用于嵌入一些由高级Excel用户维护的计算
问题内容: 我有一个函数,其输入参数可以是一个元素或元素列表。如果此参数是单个元素,则将其放在列表中,以便可以以一致的方式遍历输入。 目前我有这个: 我正在使用现有的API,因此无法更改输入参数。使用isinstance()感觉很麻烦,所以有 适当的 方法吗? 问题答案: 我喜欢Andrei Vajna的建议。请注意以下一些典型的Python类型的结果: 这具有将字符串视为不可重复的额外优势-字符
如何转换字符串列表 我正在使用NewtonSoft.json。 任何帮助都将不胜感激。
问题内容: 我有一个电子表格,实际上只有一个复杂的表格。我基本上将电子表格转换为cvs,并使用常规脚本生成INSERT脚本。 但是,我无法使用包含28个字段的表来执行此操作,该表包含电子表格中某些字段中的数据,这使得导入CVS更加复杂。因此,新CVS中的字段无法正确区分,或者我的脚本没有对此进行说明。 有人对更好的方法有任何建议吗?谢谢。 问题答案: 看一下LOAD DATA INFILE语句。这
问题内容: 我有一个数据库,其中的列包含数字格式的值,例如: 在浏览器中显示时,它应该显示5k表示5000,86.6k表示86600等。我需要php中的代码。如果有任何内置函数可以执行此操作,请提及它。 问题答案: 如果将它们作为数字,则可以直接使用此功能。 如果您没有数字,请使用PHP:取消格式化 对于您的特殊情况,您可能会使用一些肮脏的技巧,但是如果您有其他特殊情况,我不建议您这样做。