我有一个.xlsx
文件,我正在尝试读取一列并将其转储到列表中。列中的值均为float
和int
:
COLUMN B
72.3
78.34
80
82.4
83.49
84.34
...
这是我用来进行转储的代码:
import openpyxl
from openpyxl import load_workbook
#Reading the xlsx file in
wb=load_workbook(filename='Results.xlsx',use_iterators=True)
ws = wb.get_sheet_by_name(name = 'Plot_2')
mylist=[]
for row in ws.iter_rows('B5:B104'):
for cell in row:
mylist.append(cell.value)
这些是我返回的值:
In [1]: mylist
Out [1]:
[72.3,
78.34,
80L,
82.4,
83.49,
84.34,
...
如何确保我的80
像整数一样被读入,而没有添加L
,为什么会这样?
答案 0 :(得分:1)
map(lambda x: int(x) if x%1==0 else x, mylist)
答案 1 :(得分:1)
为了拥有Python 2和Python 3的通用代码库,我们决定实现Python 3类型。虽然Python 2对于大整数有一个特殊的long
类型,但Python 3中没有这样的类型。为了安全起见,所有整数都被视为long
。这应该对您的代码没有任何副作用。