Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串转换为整数_Python_List_Integer_Sum - Fatal编程技术网

Python 将字符串转换为整数

Python 将字符串转换为整数,python,list,integer,sum,Python,List,Integer,Sum,我刚刚开始编程,我知道我仍然缺少一些基础知识,但我正在努力解决这个问题。我有一个3位和4位数字的列表,我从一个文本文件中输入,我试图得到这些数字的总和。到目前为止,我能让python做的就是对每个数字求和,所以如果列表中的第一个数字是427,它将打印13,而不是添加427+504+219,等等 这就是我所拥有的: myList = [] inFile = open('E:/GIS/GTECH 731/NYCElementarySchools.txt', 'r') for row in inFil

我刚刚开始编程,我知道我仍然缺少一些基础知识,但我正在努力解决这个问题。我有一个3位和4位数字的列表,我从一个文本文件中输入,我试图得到这些数字的总和。到目前为止,我能让python做的就是对每个数字求和,所以如果列表中的第一个数字是427,它将打印13,而不是添加427+504+219,等等

这就是我所拥有的:

myList = []
inFile = open('E:/GIS/GTECH 731/NYCElementarySchools.txt', 'r')
for row in inFile:
    col = row.split('\t')
    if col[1]=='BK':
        myList = (col[3])
        intList = [int(x) for x in myList]
        print sum(intList)
此外,当我打印长度时,它会给我一个3和4的列表,告诉我每个数字的长度,而不是数字的总数

我一定错过了一些基本的东西,但我不知道是什么!任何建议都将不胜感激!谢谢

这是:

myList = (col[3])
myList
设置为
str
,而不是
列表
,该列表将表示一个数字。因此:

intList = [int(x) for x in myList]
将数字转换为数字。您需要
int(myList)
将整个字符串转换为数字



您可以保留一个运行总数(初始化为0)并执行
total+=int(myList)
以合计所有数字。然后在循环之后,您可以
打印结果。

您可能希望使用切片来分配myList

myList = col[3:]
这将返回代码中从第3列开始的所有内容。

col = row.split('\t')
if col[1]=='BK':
    myList = (col[3])
    intList = [int(x) for x in myList]
    print sum(intList)
'col=row.split('\t')'生成一个由TAB分隔的列表

如果从文件中读取的行如下所示:

# \t is TAB
SOMETHING\tBK\t1\t2\t3
col结构为:

col[0] = SOMETHING
col[1] = BK
col[2] = 1
col[3] = 2
col[4] = 3
因此,如果您打算将col[3]和col[…],那么使用col[3:]=col[3]的列表,col[4]

因此,若要累加求和结果,则需要另一个变量

myList = []
inFile = open('E:/GIS/GTECH 731/NYCElementarySchools.txt', 'r')
sumList = []
for row in inFile:
    row_total = 0
    col = row.split('\t')
    if col[1]=='BK':
        intList = [int(x) for x in col[3:]]
        row_sum = sum(intList)
        # row_sum = map(lambda x: int(x), col[3:])
        print 'row total: %d' % (row_sum)
        sumList.append(row_sum)

print 'total: %d' % (sum(sumList))

请用4个空格缩进代码格式。从文本文件中发布一些示例数据。@hcwhsa它应该运行正常吗?@GrijeshChauhan不应该,OP正在迭代特定列的数据,但他们需要迭代列表(或列表的一部分)。@user2387370抱歉,我想评论OP…如果
myList
是这样的话,
[myList中x的int(x)]
会引发错误。