Python在文件列表中排列整数

时间:2016-02-17 20:10:46

标签: python

我试图覆盖通过带有各自方块的文件输入的列表中的数字。我有:

def squareEach():

    fname = input("Enter exact file name: ")
    infile = open(fname, 'r')
    data = infile.readlines()
    nums = []
    nums1 = []

    for i in range(len(data)):
        nums.append(data[i].split())
        nums1.append(nums[i] ** 2)

    print(nums1)

squareEach()

但是收到错误。有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

data[i].split()返回list,因此您向变量list附加nums

然后,您尝试nums[i] ** 2。但是,nums包含整数列表,因此nums[i]是一个列表,您无法对list

进行平方

不应附加data[i].split(),而应附加一个整数。

答案 1 :(得分:0)

假设您的输入文件如下所示:

1 1
2 4
3 9
4 16

然后这行代码:

nums.append(data[i].split())

创建一个两元素列表,例如['4', '16'],并将其放入nums。因此,nums是一个列表列表,您必须将其下标两次:一次获取所需的子列表,再次获取子列表中的元素,如下所示:

nums[i][0]

由于这些项目存储为字符串,因此如果您想进行计算,则需要对这些值调用int()

答案 2 :(得分:0)

如果以下列格式返回读取数据:

data = ["1 2 3 4 5 6","7 8 9"]

然后,以下代码将正确填充两个列表,一个包含整数值,另一个包含正方形

num = []
num1 = []

for line in data:
    for num_string in line.split():
        integer  = int(num_string)
        num.append(integer)
        num1.append(integer**2)