Skip to main content
 首页 » 编程设计

编写循环的 Pythonic 方式

2025年05月04日10txw1958

我有两个列表:a = [1, 2, 3] 和 b = [4, 5, 6]。

我在 python 中使用了两个循环,从 a 的每个元素中减去 b 的每个元素。

import numpy as np 
a = [1, 2, 3] 
b = [4, 5, 6] 
p = -1 
result = np.zeros(len(a)*len(a)) 
for i in range(0,len(a)): 
    for j in range(0,len(a)): 
        p = p + 1 
        result[p] = a[i] - b[j] 

我的结果是正确的:result = [-3., -4., -5., -2., -3., -4., -1., -2., -3.] 。

但是,我想知道是否有更优雅('pythonic')的方式来做到这一点。

请您参考如下方法:

不需要使用索引。您可以迭代这些值。

a = [1, 2, 3] 
b = [4, 5, 6] 
result = [] 
for x in a: 
    for y in b: 
        result.append(x - y) 

Pythonic 方式是列表理解。

a = [1, 2, 3] 
b = [4, 5, 6] 
result = [x - y for x in a for y in b] 

请记住,您应该为 a、b、x 和 y 使用有意义的名称真正的代码。