2024-04-25 22:24:41 发布
网友
给定一个包含一堆整数元素的元组,如何找到所有元素的和?
例如,如果我有一个元组列表:
li = [(1, 2), (1, 3), (2, 3)]
我怎么能得到这样的东西:
[3, 4, 5]
其中3、4和5分别是三个元组的总和?
初学者:
for
演示:
>>> li = [(1, 2), (1, 3), (2, 3)] # Given Input >>> result = [] # Step 1 >>> for i in li: # Step 2 ... tmp_sum = 0 # Step 3 ... for j in i: # Step 3 ... tmp_sum += j # Step 4 ... result.append(tmp_sum) # Step 5 ... >>> print result [3, 4, 5]
您可以像这样使用^{}和^{}函数
>>> li = [(1, 2), (1, 3), (2, 3)] >>> map(sum, li) [3, 4, 5]
或者可以使用list comprehension,如下所示
>>> [sum(tup) for tup in li] [3, 4, 5]
注意:我个人更喜欢列表理解版本,因为Python 3.x中的^{}函数将返回一个iterablemap对象,该对象需要显式转换为列表,如list(map(sum, li))。
map
list(map(sum, li))
>>> li = [(1, 2), (1, 3), (2, 3)] >>> map(sum, li) <map object at 0x7f3dc25bb0f0> >>> type(map(sum, li)) <class 'map'> >>> list(map(sum, li)) [3, 4, 5]
但是列表理解将给出Python2.x和Python3.x中的列表
你可以用list comprehension。
>>> li = [(1, 2), (1, 3), (2, 3)] >>> [x+y for (x,y) in li] [3, 4, 5]
初学者:
for
循环遍历给定列表中的每个项。演示:
您可以像这样使用^{} 和^{} 函数
或者可以使用list comprehension,如下所示
注意:我个人更喜欢列表理解版本,因为Python 3.x中的^{} 函数将返回一个iterable
map
对象,该对象需要显式转换为列表,如list(map(sum, li))
。但是列表理解将给出Python2.x和Python3.x中的列表
你可以用list comprehension。
相关问题 更多 >
编程相关推荐