我有一个脚本,可以将嵌套列表转换为LaTeX格式的表。棘手的部分是与细胞颜色的价值观。假设我有这样一个嵌套列表:
[[0.40,-0.13,0.00,0.00,0.00],[1.90,-0.56,-0.57,-0.66,-1.37],[4.07,0.24,2.56,0.02,0.02],[6.43,0.23,0.33,0.18,0.02],[11.80,4.81,4.86,3.96,6.03],[4.05,1.94,0.09,0.01,0.03]]
我的剧本是这样的
for fila in listainicial:
#seudocódigo
mes1 = ""
mes2 = ""
mes3 = ""
mes4 = ""
mes5 = ""
if float(fila[0]) >= 100:
mes1 = "\\footnotesize{}\\cellcolor{100pc}"
elif float(fila[0]) > 30:
mes1 = "\\footnotesize{}\\cellcolor{masde30pc}"
elif float(fila[0]) > 20:
mes1 = "\\footnotesize{}\\cellcolor{20to30pc}"
elif float(fila[0]) > 10:
mes1 = "\\footnotesize{}\\cellcolor{10to20pc}"
elif float(fila[0]) > 5:
mes1 = "\\footnotesize{}\\cellcolor{5to10pc}"
elif float(fila[0]) > 0:
mes1 = "\\footnotesize{}\\cellcolor{0to5pc}"
elif float(fila[0]) == 0:
mes1 = "\\footnotesize{}\\cellcolor{0pc}"
elif float(fila[0]) > -5:
mes1 = "\\footnotesize{}\\cellcolor{m5to0pc}"
elif float(fila[0]) > -10:
mes1 = "\\footnotesize{}\\cellcolor{m10tom5pc}"
elif float(fila[0]) > -25:
mes1 = "\\footnotesize{}\\cellcolor{m25tom10pc}"
elif float(fila[0]) <= -25:
mes1 = "\\footnotesize{}\\cellcolor{menosdem25pc}\\color{white}"
代码在fila[1]到fila[4]之间重复
这太不和谐了,我觉得有点脏。我的脚本可以工作,复制粘贴块不是问题,但正如我在标题中指出的那样,我希望生成一个更优雅、更令人满意的代码。你知道吗
我真的很想用一本字典来代替如此冗长单调的if…elif系列。我也将感谢任何其他解决方案,减少我的110行长的脚本部分。你知道吗
我真的很感激任何提示或解决在这个意义上
提前谢谢
谢谢你们的回答,对我的其他问题很有启发和启发。但是,我想使用字典和遍历变量名,所以我最终以@Poshi answer开始,以这个结束
因为它的工作,我张贴它,因为它可以帮助其他人在这里。你知道吗
再次感谢。@reblochon,您的示例启发了我在python中需要学习和改进的所有内容
您可以定义(limit,color)元组的排序列表:
然后,您可以筛选搜索感兴趣的内容:
现在您可以编写字符串:
这并不是您要做的:对于值<;=25,我缺少字符串的一部分,并且我假设所有的比较器都是
>
。但你明白了。你知道吗下面是我试图封装您的代码并使其不那么笨拙的尝试:
if name == main
以上的所有内容都可以在单独的模块中提取,使主代码如下所示:我添加了docstring来解释每个类/方法的作用;如果需要更多解释,请告诉我。你知道吗
输出:
相关问题 更多 >
编程相关推荐