使用理解创建对列表

时间:2018-05-17 16:10:39

标签: python list-comprehension

我试图从两个范围创建一对p

r1 = [i for i in range(0, 10, 2)]
r2 = [j for j in range(10, 0,-2)]

这样,

p[0] = [r1[0], r2[1]]
p[1] = [r1[1], r2[1]]
.....
p[-1] = [r1[-1], r2[-1]]

天真的我想,

p = [[i, j] for i in range(0, 10, 2) for j in range(10, 0, -2)]

会这样做,但我很快就看到了我的方式错误。

我也试过了,

p = [r1[:], r2[:]]

但是,那也没有用。

然后我试过了,

p = []
for i, j  in zip(r1, r2):
    p.append([i, j]) 

哪个有用!

但这让我感到疑惑,是否有使用列表推导的Pythonic方法?

2个范围在实现中的长度始终相同,但并不总是跨越同一个域。

编辑:要清楚我想知道是否有可能生成范围r1&理解中的r2以及对配对的理解。

1 个答案:

答案 0 :(得分:1)

对于您在上面发布的代码中提到的那个工作转换为list comprehension,您可以尝试:

[[i,j] for i, j  in zip(r1, r2)]

或者在range中添加list comprehension

[[i,j] for i, j  in zip(range(0, 10, 2), range(10, 0, -2))]