Python 值类型(int、float、str)
Python Value Types (int, float, str)
我有一个 Excel sheet 数据如图:Cisco Call Handlers
我正在使用 Python 3 并从 Excel sheet 读取数据,但由于它既有整数又有字符串,我无法指定数据类型。处理值类型的最佳方式是什么?起初,整数将打印 "float" 类型以及尾随“.0”,所以我在每个单元格的数字前放置了一个撇号,这解决了问题,但整数现在打印为字符串类型。我想围绕不同类型构建逻辑,那么最好的方法是什么?
这是我在意识到整数现在打印为字符串类型之前的想法:
if type(value[x]) == str:
do x
if type(value[x]) == int:
do y
我考虑的另一个选择是保持类型浮动并围绕它构建逻辑,但我需要正则表达式帮助删除每个具有整数的单元格后的尾随 ".0"
。
这是在我用数字在每个单元格中放置撇号之前它会打印的内容:
0 ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
值创建如下:
values = dict()
for idx in range(1, xlrdsheet.nrows):
values[idx] = xlrdsheet.row_values(idx)
for key, value in values.items():
print(key, value)
我猜您是从 Excel sheet 中读取这些值作为文本:
您可以使用正则表达式检查您的值是否由数字(r"[0-9]*"
)或字母(r"[a-bA-B]*"
)组成,并分别进行转换。或者:
try:
number = int(val)
except ValueError:
text = val
我有一个 Excel sheet 数据如图:Cisco Call Handlers
我正在使用 Python 3 并从 Excel sheet 读取数据,但由于它既有整数又有字符串,我无法指定数据类型。处理值类型的最佳方式是什么?起初,整数将打印 "float" 类型以及尾随“.0”,所以我在每个单元格的数字前放置了一个撇号,这解决了问题,但整数现在打印为字符串类型。我想围绕不同类型构建逻辑,那么最好的方法是什么? 这是我在意识到整数现在打印为字符串类型之前的想法:
if type(value[x]) == str:
do x
if type(value[x]) == int:
do y
我考虑的另一个选择是保持类型浮动并围绕它构建逻辑,但我需要正则表达式帮助删除每个具有整数的单元格后的尾随 ".0"
。
这是在我用数字在每个单元格中放置撇号之前它会打印的内容:
0 ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
值创建如下:
values = dict()
for idx in range(1, xlrdsheet.nrows):
values[idx] = xlrdsheet.row_values(idx)
for key, value in values.items():
print(key, value)
我猜您是从 Excel sheet 中读取这些值作为文本:
您可以使用正则表达式检查您的值是否由数字(r"[0-9]*"
)或字母(r"[a-bA-B]*"
)组成,并分别进行转换。或者:
try:
number = int(val)
except ValueError:
text = val