arr.rsplit(',', len(arr))
print sum(arr)
如果我输入的“1,2,3,4”的字符串,第一行拆分它的1,2,3,4列表清单。但是,当我打印总和它不起作用时,我收到一条错误消息。如何总结在python
arr.rsplit(',', len(arr))
print sum(arr)
如果我输入的“1,2,3,4”的字符串,第一行拆分它的1,2,3,4列表清单。但是,当我打印总和它不起作用时,我收到一条错误消息。如何总结在python
总结你的数组的最佳方式是(你需要转换你的数组元素是一个浮点数,而不是字符串):
i=0
for a in arr.split(','): i=i+float(a) #use int() if you want integers
print i
有了您的效率较低语法这只会是:
i=0
for a in arr.rsplit(',', len(arr)): i=i+float(a) #use int() if you want integers
print i
希望这有助于。对不同类型的变量
退房this reference在你的情况你的分割字符串,但结果不会被再次分配给arr
让你的变量arr
值没有得到改变它仍然是字符串,所以当你申请sum(arr)
它是给人一种错误。但是,如果你给它分配arr中分割元素的类型<class 'str'>
所以它转换成integer
我想在Python 3使用split
代替rsplit
解决方案:
arr = "1,2,3,4"
arr = map(int,arr.split(','))
print(sum(arr))
输出:10
它会将每个元素转换为整数,然后取总和。但是,如果你尝试打印ARR:地图方法之后print(arr)
它给输出:<map object at 0x7f90c081acc0>
所以转换arr
到list
访问要素所以不是arr = map(int,arr.split(','))
给arr = list(map(int,arr.split(',')))
如果你想使用rsplit
然后解决方案(在Python 3) :
arr = "1,2,3,4"
arr = list(map(int,arr.rsplit(',', len(arr))))
print(sum(arr))
为什么你特别在'split'上使用'rsplit',并在不需要限制分割数量时传递第二个参数?此外,即使字符串包含整数的文本表示形式,您也有一个字符串列表,而不是整数。 – user2357112