【问题标题】:List comprehension iterate two variables at the same time [duplicate]列表理解同时迭代两个变量[重复]
【发布时间】:2016-11-11 04:37:32
【问题描述】:

是否有可能使用列表推导同时迭代两个变量,同时增加两个变量的循环位置。请参见下面的示例:

a = [1,2,3,4,5]

b = [6,7,8,9,10]

c = [i+j for i in a for j in b] # This works but the output is not what it would be expected.

预期输出为c = [7, 9, 11, 13, 15](a 中的第 n 个元素 + b 中的第 n 个元素)

谢谢。

【问题讨论】:

  • 试试这个:c = [i+j for i,j in zip(a,b)]

标签: python python-2.7 python-3.x


【解决方案1】:
a = [1,2,3,4,5]
b = [6,7,8,9,10]

c = map(sum, zip(a, b))
print c

#Output
[7, 9, 11, 13, 15]

【讨论】:

  • 虽然这完全有效,但是对于新手来说使用 sum 函数是不必要的复杂。另一个问题是,在 Python 3 中,这会返回一个地图对象——例如<map object at 0x0000019B59329DA0> 虽然map 更快,但以下更简单... python c = [aa + bb for aa, bb in zip(a,b)]
猜你喜欢
  • 2014-02-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
相关资源
最近更新 更多