Python:双嵌套列表理解

2024-09-26 22:54:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个函数,它对另一个有5个输入的数值函数的输入进行采样, 为每个输入指定最小值和最大值。它将导致num_samples^5个不同的输入组合

我希望将这段代码缩短,这样就不再需要显式索引0到4了

num_inputs = 5
num_samples = 10.0

sampled_inputs = [[a, b, c, d, e]
                  for a in sample_range(mins[0], maxes[0], num_samples)
                  for b in sample_range(mins[1], maxes[1], num_samples)
                  for c in sample_range(mins[2], maxes[2], num_samples)
                  for d in sample_range(mins[3], maxes[3], num_samples)
                  for e in sample_range(mins[4], maxes[4], num_samples)]

其中,sample_range是一个函数,用于在最小值和最大值之间对num_采样数进行采样

有什么把戏我还没看到吗?提前谢谢


Tags: sample函数代码inforrangenum数值
1条回答
网友
1楼 · 发布于 2024-09-26 22:54:20

你想得到笛卡尔积吗

如果是,请使用itertools.product

import itertools
lists = [sample_range(mins[i], maxes[i], num_samples) for i in range(4)]
prod = itertools.product(*lists)
for elem in prod:
   print(elem)

相关问题 更多 >

    热门问题