Python 将字符串转换为整数
我刚刚开始编程,我知道我仍然缺少一些基础知识,但我正在努力解决这个问题。我有一个3位和4位数字的列表,我从一个文本文件中输入,我试图得到这些数字的总和。到目前为止,我能让python做的就是对每个数字求和,所以如果列表中的第一个数字是427,它将打印13,而不是添加427+504+219,等等 这就是我所拥有的: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
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)]
会引发错误。