Python TypeError:需要一个整数(获取类型列表)

时间:2015-10-21 10:51:05

标签: python arrays

我试图从num.txt(1 3 2)中获取数字并将其设置为数组

from array import *
import sys    
f = open('num.txt', 'r')  
l = f.readlines() 
f.close() 
list = [1, 2, 3, 4, 5 ,6]
sclist = [l]
myArray = array('i', [])
myArray.fromlist(sclist)
for i in myArray:
    print(i)

返回

TypeError: an integer is required (got type list)   

如果我将其更改为myArray.fromlist(int(sclist)),我会得到

TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'    

2 个答案:

答案 0 :(得分:1)

此处的问题是l = f.readlines()会返回一个字符串列表,然后您将其放入另一个列表sclist = [l]中,所以只需执行myArray.fromlist(l)
在进行myArray.fromlist(l)调用之前,请务必将您从文件中读取的内容转换为int。

答案 1 :(得分:1)

假设您的文件每行包含一个数字,您可以将sclist的分配更改为:

sclist = [int(s) for s in l]

希望这会奏效。我还建议您避免使用“list”作为变量名(在此示例中未使用),因为这将掩盖标准Python定义并可能导致混淆。