85

これが私のコードです。リスト内の未定義の要素数を合計する必要があります。これを行う方法?

l = raw_input()
l = l.split(' ')
l.pop(0)

私の入力:3 5 4 9 入力後、 を介して最初の要素を削除しl.pop(0)ます。.split(' ')私のリストの後、['5', '4', '9']このリストのすべての要素を合計する必要があります。

この場合、合計は 18 です。要素の数が定義されていないことに注意してください。

4

7 に答える 7

191

sum()ビルトインを使用するだけで、リスト内の数値を合計できます。

sum(your_list)

それはあなたが持っている数の項目を合計します。例:

my_list = range(10, 17)
my_list
[10, 11, 12, 13, 14, 15, 16]

sum(my_list)
91

あなたの特定のケースでは

データの場合、数値を最初に変換してから、数値をint合計します。

data = ['5', '4', '9']

sum(int(i) for i in data)
18

これは、リスト内の未定義の数の要素に対して機能します(それらが「数値」である限り)

データが文字列形式の場合の@senderleのコメント再変換に感謝します。

于 2012-07-05T12:57:57.257 に答える
8
>>> l = raw_input()
1 2 3 4 5 6 7 8 9 10
>>> l = l.split()
>>> l.pop(0)
'1'
>>> sum(map(int, l)) #or simply sum(int(x) for x in l) , you've to convert the elements to integer first, before applying sum()
54
于 2012-07-05T13:00:47.317 に答える
6

Python iterable は so - のように合計できます[sum(range(10)[1:])]。これは、リストの最初の要素を除くすべての要素を合計します。

>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15
于 2012-07-05T12:59:30.593 に答える
2

を使用sumしてリストの要素を合計できますが、リストが からのものraw_inputである場合は、おそらく項目をintまたはfloat最初に変換する必要があります。

l = raw_input().split(' ')
sum(map(int, l))
于 2012-07-05T13:00:44.337 に答える
1

map関数と pythons 組み込み関数を使用できますsum()。これにより、ソリューションが簡素化されます。そして、複雑さを軽減します。
a=map(int,raw_input().split())
sum(a)
終わり!

于 2016-07-01T18:25:30.053 に答える