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