繁体   English   中英

Python:双重嵌套列表理解

[英]Python: double nested list comprehension

我正在编写一个函数,该函数将输入采样到另一个具有 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 是一个函数,它在 min 和 max 之间对 num_samples 数字进行采样。

有什么我还没有看到的技巧吗? 提前致谢。

你想在这里得到笛卡尔积吗?

如果是这样,请使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM