所以我必須:如何打印for循環列表
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,
這是可能的嗎?
所以我必須:如何打印for循環列表
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,
這是可能的嗎?
這裏有幾個選項:
使用元組拆包和發電機:
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))
print
總是打印新行。如果您想打印一行,則需要一次完成所有打印。
在你的循環中,創建一個字符串並打印出來。或者,根據你想要的格式,你也可以創建一個元組(用圓括號表示)。
順便說一句,如果你想添加一個列表的成員,你可以使用sum
:
e = sum(k)
此外,s
已經是一個元組,你不需要一一列舉它 - 你可以使用以下代碼循環:
for k in s:
e = sum(k)
現在,請繼續前進並將它們放在一起。
>>> 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並最終打印出來。
爲什麼要創建一箇中間列表來提取索引?你可以這樣做,因爲我可以在這裏列舉出:「在這裏也很容易。 – mgilson
我想保持我的代碼儘可能接近OPs – hd1
感謝這個工作,當's'是那個長度,但是當我用更長的長度嘗試它時,它似乎不工作... – user2240542
在這裏的3個選項中,我最喜歡第二個選項。 – mgilson
真的很有幫助!謝謝。 – user2240542