我必须创建一个列表列表(每个内部列表都有n
固定元素)。现在,为了n=3
,我在做:
my_list = []
for x in range(min_inner max_inner + 1):
for y in range(min_outer, max_outer + 1):
for z in range(fixed_param):
my_list.append([x, y, z])
当我尝试列表理解时,比如:
[[x,y,z] for x in range(1,4), y in range(1,4), z in range (4)]
我得到一个名字错误
NameError: name 'z' is not defined
有什么办法吗?考虑到n
可以是任意数(尽管不一定是任意大的)
您还需要在列表中的范围对象上循环。你知道吗
另外,作为一种更简洁的方法,您可以使用
itertools.product()
来获得相同的结果:注意,
itertools.product()
返回一个迭代器对象,它比返回列表的列表理解更优化(在内存使用方面)。如果您只想对结果进行迭代,则不需要将结果转换为列表。否则列表理解会执行得更快。你知道吗相关问题 更多 >
编程相关推荐