数组和计算的比较

时间:2013-09-03 11:47:24

标签: python arrays list comparison compare

我有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]

rro的长度始终相同,但len(new_r)始终小于rro的长度。 我想计算

(r[i+1] -r[i])**3*ro[i+1]

表示所有r[i]小于new_r[]中的第一个元素并打印它(将其写入文件)。然后对r[i]中少于第二个元素的new_r[]执行相同的操作并打印它(将其写入文件)。依此类推到new_r

中的最后一个值

我该如何进行比较和计算?

2 个答案:

答案 0 :(得分:0)

你可以在[a_range if blabla]语法

中使用[for something for i
for 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)