把字符串读成整数?(Python 2.7)

2024-09-28 01:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手,我只是边走边学。在

我正在尝试从Excel文件导入数据到Python程序中。我需要能够在Python程序中而不是Excel中用这些数字进行简单的计算。代码现在是这样的:

    import csv
    with open ('vals.csv','rb') as csvfile:
        reader = csv.reader(csvfile)
        x = next(reader)
        y = next(reader)
        z = next(reader)

        print x[0]+z[2]
        print x[0]+1

第一个print语句应该是7(因为第一个x是3,第三个z是4)。相反,它会打印34,所以我假设它没有将值作为整数处理?在

第二个print语句导致此错误:

^{pr2}$

基于此,我想它是将每一行作为字符串而不是整数来读取。我试着做下一件事,看看这是否能把它转换成整数:

    x = next(reader)
    x = int(x)
    y = next(reader)
    y = int(y)
    z = next(reader)
    z = int(z)

但它给了我一个错误:

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

所以我猜它不是把它当作一根弦来读?在

我只想知道如何把它读成像x[0]这样的整数,这样我就可以用它来计算了。在


Tags: 文件csv数据csvfile程序错误整数语句
2条回答

csv.reader模块在每次迭代时生成一个字符串行的列表。在

也就是说,即使每行只有一列,或者数据包含整数。在

要获取每行的整数列表,请在列表理解中执行:

row1 = [int(x) for x in next(reader)]

或者因为它是python 2:

^{pr2}$

然后使用row1[2]以整数形式访问行的第三个元素。在

^{}是与行中的列相对应的字符串的lists的iterable:

x = next(reader)
# x: ['3', '4', '5']

如果所有值都可以转换为int,则可以执行以下操作:

^{pr2}$

否则,必须分别转换字段:

x[0] = int(x[0])

相关问题 更多 >

    热门问题