簡體   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