【问题标题】:Comparison of arrays and calculation数组比较和计算
【发布时间】:2013-09-03 11:47:23
【问题描述】:

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

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

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

【问题讨论】:

  • 你有没有尝试过?

标签: python arrays list comparison compare


【解决方案1】:

您可以使用 [something for i in a_range if blabla] 语法

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]

【讨论】:

    【解决方案2】:

    你可以这样做

    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)
    

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      相关资源
      最近更新 更多