use*_*100 7 python list-comprehension list
说我有两个清单:
a=[1,2,3,4,5]
b=[5,4,3,2,1]
Run Code Online (Sandbox Code Playgroud)
我想创建第三个,它将是两个线性和:
c[i]==a[i]+b[i]
c==[6,6,6,6,6]
Run Code Online (Sandbox Code Playgroud)
是否可以使用'for'构造函数?喜欢:
c = [aa+bb for aa in a for bb in b]
Run Code Online (Sandbox Code Playgroud)
(这显然不是我想要的)
Ash*_*ary 24
用途zip():
>>> a = [1,2,3,4,5]
>>> b = [5,4,3,2,1]
>>> c = [x+y for x,y in zip(a, b)]
>>> c
[6, 6, 6, 6, 6]
Run Code Online (Sandbox Code Playgroud)
要么:
>>> c = [a[i] + b[i] for i in range(len(a))]
>>> c
[6, 6, 6, 6, 6]
Run Code Online (Sandbox Code Playgroud)
c = [aa+bb for aa in a for bb in b] 是这样的:
for aa in a:
for bb in b:
aa+bb
Run Code Online (Sandbox Code Playgroud)
这意味着,选择1从a通过的所有元素,然后循环b,同时将其添加到1,然后选择2从a再次通过的所有值,然后循环b,同时将它们添加到2,这就是为什么你并没有获得预期的输出.
小智 5
a=[1,2,3,4,5]
b=[5,4,3,2,1]
[x+y for x,y in zip(a,b)]
[6, 6, 6, 6, 6]
OR
map(lambda x,y:x+y, a, b)
[6, 6, 6, 6, 6]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21893 次 |
| 最近记录: |