我有3个列表
r = [0.105, 0.111, 0.218, 0.225, 0.332, 0.440, 0.548, 0.656, 0.865, 1.75]
ro = [850, 856, 844, 830, 787, 826, 764, 773, 781, 748]
new_r = [0.25672, 0.39602, 0.55907, 0.65756, 0.77467, 0.93619]
r
和ro
的长度始终相同,但len(new_r)
始终小于r
和ro
的长度。
我想计算
(r[i+1] -r[i])**3*ro[i+1]
表示所有r[i]
小于new_r[]
中的第一个元素并打印它(将其写入文件)。然后对r[i]
中少于第二个元素的new_r[]
执行相同的操作并打印它(将其写入文件)。依此类推到new_r
我该如何进行比较和计算?
答案 0 :(得分:0)
你可以在[a_range if blabla]语法
中使用[for something for ifor newr in new_r:
print [(r[i+1]-r[i])**3 * ro[i+1] for i in xrange(len(r) - 1) if r[i] < newr]
答案 1 :(得分:0)
你可以这样做
from __future__ import print_function # only for compatibility with the 2 and 3 version of python
r = [0.105, 0.111, 0.218, 0.225, 0.332, 0.440, 0.548, 0.656, 0.865, 1.75]
ro = [850, 856, 844, 830, 787, 826, 764, 773, 781, 748]
new_r = [0.25672, 0.39602, 0.55907, 0.65756, 0.77467, 0.93619]
for el in new_r:
print("for ",el)
for i in range(len(r)-1):
val = (r[i+1] -r[i])**3*ro[i+1]
if val < el:
print(val)