将标量、元组和numpy数组混合为字符串argumen

2024-10-04 09:25:16 发布

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

我使用python生成一些POVray渲染代码,用于可视化一些计算数据。我需要从python向POVray代码的字符串传递很多参数。我想把纸条弄干净。所以我想直接使用元组和数组作为字符串格式的参数。像这样:

sign   = -1
name   = "temp1"
nu     = 0.245 
boxMin =(0.01,0.01,0.01)  # tuple
boxMax =array([0.99,0.99,0.99]) # array
povfile.write( '''
isosurface {
    function     {  %f*( %f - data3d_%s(x,y,z) )  }
    contained_by { box { <%f,%f,%f>,<%f,%f,%f> } }
}''' %(  sign, nu, name, *boxMin, *boxMax ) )

而不是这样:

^{pr2}$

Tags: 数据字符串代码name参数可视化数组array
1条回答
网友
1楼 · 发布于 2024-10-04 09:25:16

假设您要在字符串中写入的每个元素都是一个list(或iterable),即使它是由一个元素组成的,那么您可以使用基于列表展平的解决方法。在

想想这个

flatten_list = lambda tupleOfTuples : [element for tupl in tupleOfTuples for element in tupl]

a = ['hi',]
b = [23,56]
c = ['bye',33,35]

"{0} {1} {2} {3} {4} {5}".format(*flatten_list([a,b,c]))

结果

^{pr2}$

您可以使用更聪明的算法来展开参数列表,以便也包括不可编辑的元素(即仅由一个项目组成的元素)。(参见this answer)。在

相关问题 更多 >