我在计算一大堆场景,包括楼板的几何形状。我需要做的就是重复每一个案例,长度可达200米,厚度可达120厘米。我用sympy解决了。
除了有一个烦人的小问题,我肯定有一个简单的解决方案,但我想不出来。这就是我如何生成不同的计算场景:
from sympy.utilities.iterables import multiset_combinations,multiset_permutations,iproduct
dims_lw = range(1000,200500,500)
dims_th = range(50,130,10)
dimensions = multiset_combinations(dims_lw,2)
combinations_dim = iproduct(dimensions,dims_th)
对于侧面尺寸,从1到200的每一个可能数字的组合(减少场景数量的组合,因为10 x 200m与200 x 10m相同)。然后笛卡尔积得到一系列可能厚度的每一种组合。
当我执行print(list(dimensions))
来查看我生成的内容时,我得到了这个:
[([1000, 1500], 50), ([1000, 2000], 50), ([1000, 1500], 100), ([1000, 2500], 50), ([1000, 2000], 100) ...]
这也是我想要的除了我想要的是相同的东西,但没有嵌套列表。(1000,1500,50),(1000,2000,50),等等,这样我就不必在后面处理更多的索引和子索引了。
问题是,如何将当前的输出转换为我想要的输出?还是完全避开我原来的问题?
1条答案
按热度按时间7cwmlq891#
要使输出平坦化,请使用
flatten
函数: