Python 独立循环的列表理解

Python 独立循环的列表理解,python,list-comprehension,Python,List Comprehension,我试图对两个非嵌套for循环使用列表理解。这是我不理解列表的解决方案: import numpy as np n_steps = 20 x_steps = [int(i) for i in np.linspace(10, 60, n_steps)] y_steps = [int(i) for i in np.linspace(25, 150, n_steps)] steps = [(x_steps[i], y_steps[i]) for i in range(len(x_steps))] 如您

我试图对两个非嵌套for循环使用列表理解。这是我不理解列表的解决方案:

import numpy as np
n_steps = 20
x_steps = [int(i) for i in np.linspace(10, 60, n_steps)]
y_steps = [int(i) for i in np.linspace(25, 150, n_steps)]
steps = [(x_steps[i], y_steps[i]) for i in range(len(x_steps))]
如您所见,我需要
步骤=[(10,25),(13,31),…]

是否有一种优雅的、通灵的方法,可以用列表理解或类似的方式在一行中完成它?在我的脑海里,我有这样的想法:

steps = [(int(x), int(j)) for x in np.linspace(10, 60, n_steps) and j in np.linspace(25, 150, n_steps)]
使用
zip

import numpy as np
n_steps = 20
steps = [(int(i),int(j)) for i,j in zip(np.linspace(10, 60, n_steps),np.linspace(25, 150, n_steps))]
使用
zip

import numpy as np
n_steps = 20
steps = [(int(i),int(j)) for i,j in zip(np.linspace(10, 60, n_steps),np.linspace(25, 150, n_steps))]
你的答案是:)

你的答案是:)


因为,
float
int
的转换也在进行。因为,
float
int
的转换也在进行。这是否回答了您的问题。假设您不知道
zip
,一种简单的方法是将名称折叠起来:
steps=[(int(np.linspace(10,60,n_步骤)[i]),int(np.linspace(25,150,n_步骤)[i])用于范围内的i(len(np.linspace(10,60,n_步骤))][/code>这是否回答了您的问题。假设您不知道
zip
,一种简单的方法是将名称折叠起来:
steps=[(int(np.linspace(10,60,n_步骤)[i]),int(np.linspace(25,150,n_步骤)[i]),用于范围内的i(len(np.linspace(10,60,n_步骤))。