我需要在一个列表中应用多个"for"来使用以前创建的列表。
我还需要将最后一个列表中的值四舍五入到第二位数,但有一个问题我不明白。
下面是部分代码:
koef_ob_dvig = 39
v_list = [0, 20, 40, 60, 80, 100, 120, 140, 160, 170]
n = [i * koef_ob_dvig for i in v_list]
Ne_list = [round((x / 3600 * mekh_kpd) * (G * koef_dor_sopr + k * F * (x ** 2) / 13), 2) for x in v_list]
n_tabl = [0, 20, 40, 60, 80, 100, 120]
Ne_tabl = [0, 20, 50, 73, 92, 100, 92]
n_graph = [round((max(n)/100 * x1), 2) for x1 in n_tabl]
Ne_graph = [round((max(Ne_list)/100 * x2), 2) for x2 in Ne_tabl]
#Further problems arise
Mk_tabl = [(30 * x3 / 3.14 for x3 in Ne_graph) / x4 for x4 in n_graph]
# This part works correctly (30 * x3 / 3.14 for x3 in Ne_graph)
# But when I try to divide each received element into the corresponding element of the n_graph list an error occurs
1条答案
按热度按时间djp7away1#
我不太清楚你的目标是什么,但我认为这是两件事之一。
暂时不考虑具体的计算,假设Mk_tab1变量的目标是对Ne_graph中的 * each * 元素和n_graph中的 * each * 元素执行计算:
即,使用以下示例数据:
如果这就是你想要的,那么最好的方法就是创建一个函数,它接受两个长度相等的列表作为输入,运行一个for循环,并返回一个长度相同的列表以及所需的计算结果;就像这样:
如果您实际想要的是对Ne_graph中的 * every * 元素和n_graph中的 * every * 元素进行计算:
例如:
那么可以这样来完成: