如何将for循环打印为列表

时间:2013-05-16 23:04:59

标签: python for-loop

所以我有:

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 个答案:

答案 0 :(得分: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))
    

答案 1 :(得分:1)

s = (4,8,9), (1,2,3), (4,5,6)
print tuple([sum(x) for x in s])

答案 2 :(得分:0)

print始终打印一个新行。如果要打印一行,则需要一次打印。

在循环中,创建一个字符串,并打印出来。或者,根据您希望如何格式化,您还可以创建一个元组(用圆括号表示,如您所示)。

顺便提一下,如果您想添加列表成员,可以使用sum

e = sum(k)

此外,s已经是一个元组,你不需要枚举它 - 你可以用它来循环它:

for k in s:
    e = sum(k)

现在,继续把它们放在一起。

答案 3 :(得分: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并最终打印出来。