2

ので、私は持っています:

s = (4,8,9), (1,2,3), (4,5,6)
for i, (a,b,c) in enumerate(s):
    k = [a,b,c]  
    e = k[0]+k[1]+k[2]
    print e

次のように出力されます。

21
6
15

しかし、私はそれが欲しい:

(21,6,15)

私はこれを使用しようとしましたが、それは私が望んでいたものではありません:

print i,

それで、これは可能ですか?

4

4 に答える 4

9

以下にいくつかのオプションを示します。

  • タプルのアンパックとジェネレーターを使用:

    print tuple(a+b+c for a, b, c in s)
    
  • sum()とジェネレーターを使用する:

    print tuple(sum(t) for t in s)
    
  • 使用map():

    print tuple(map(sum, s))
    
于 2013-05-16T23:08:30.110 に答える
1
s = (4,8,9), (1,2,3), (4,5,6)
print tuple([sum(x) for x in s])
于 2013-05-16T23:08:20.880 に答える
0

print常に新しい行を出力します。1行印刷したい場合は、一度に印刷する必要があります。

ループ内で文字列を作成し、それを出力します。または、どのようにフォーマットするかを指定して、タプルを作成することもできます (これは丸括弧で表されます)。

ちなみに、リストのメンバーを追加したい場合は、次を使用できますsum

e = sum(k)

また、sすでにタプルです。列挙する必要はありません。次のようにループするだけです。

for k in s:
    e = sum(k)

さあ、先に進んで、すべてをまとめてください。

于 2013-05-16T23:07:34.920 に答える
0
>>> l = []
>>> for i, (a,b,c) in enumerate(s):
...     k = [a,b,c]  
...     e = k[0]+k[1]+k[2]
...     l.append(e)
... 
>>> print l
[21, 6, 15]

これが役立つことを願っています。リスト k の合計をリスト l に追加し、最後に出力します。

于 2013-05-16T23:09:23.717 に答える