python list.append(values)将L添加到值

时间:2016-07-25 18:04:58

标签: python list

将值附加到python列表时,我遇到了奇怪的行为。我使用openpyxl读取多个excel文件的值,做一些数学运算并将它们写入新的excel文件。但是,当循环遍历标题列中的行并将值附加到列表时,列表的最终结果是单元格的值加上“L”。例如,以下是我的代码的相关部分:

xl_file = 'path/to/excel/file.xlsx'
wb = openpyxl.load_workbook(xl_file, data_only=True)
sheet = wb.get_sheet_by_name("sheetname")

hdr_col = [] # empty list to store contents of column header
for r in range(3, 13): # we want rows 3-12. rows 1 and 2 of column hdr are empty
    val = sheet.cell(row=r, column = 1).value
    print val # prints the actual value (1, 2, 3,..., 10)
    hdr_col.append(val)
print hdr_col # prints values with L, i.e.:

[1L,2L,3L,4L,5L,6L,7L,8L,9L,10L]

有人可以向我解释发生了什么事吗?起初我以为它是openpyxl模块,但只有在将值附加到列表后才添加L,所以我现在认为它实际上是Python。

1 个答案:

答案 0 :(得分:1)

因为print返回人类可读的格式 如果您在声明中使用repr代替print  print val你实际上找到了' L'附加到每个整数

点击这里

In [52]: a = 1l

In [53]: print a
1

In [54]: type(a)
Out[54]: long

In [58]: repr(a)
Out[58]: '1L'

In [55]: s = []

In [56]: s.append(a)

In [57]: s
Out[57]: [1L]

因为mysql和其他数据库存储整数值。