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总是打印一个新行。如果要打印一行,则需要一次打印所有内容。

在你的循环中,创建一个字符串,然后打印它。或者,根据您希望它的格式,您还可以创建一个元组(用圆括号表示,就像您一样)。

顺便说一句,如果你想添加一个列表的成员,你可以使用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 回答