【问题标题】:To add numbers from a file从文件中添加数字
【发布时间】:2015-12-13 18:17:58
【问题描述】:

现在,我试图只包含两个参数,并且我一直在使用下面的代码。

for i in d2:
    for j in D1:
        x[j] = d2[i]-D1[j]
        for k in D1:
            if (x[j] == D1[k]):
                break
print d2[i] = D1[j] + x[j]

错误

当我尝试运行代码时,我得到了这个错误:

Traceback (most recent call last):
   line 11, in <module>
    x[j] = d2[i]-D1[j]
IndexError: list index out of range

【问题讨论】:

  • 您正在循环列表的元素,而不是列表的索引。索引将采用for i in range(len(D2)) 的形式,但这通常不是很pythonic。我还会查看itertools.combinations(D1, 2) 以获取所有 D1 对,然后您可以检查是否是 in D2)

标签: python list file


【解决方案1】:

检查所有对的总和是否在另一个列表中(我不知道):

import itertools as it

D1 = ...
D2 = ...
def my_check(list1, list2):
    for x, y in it.combinations(list1, 2):
        if x+y in list2:
            yield x, y

for x, y in my_check(D1, D2):
    print("{} = {} + {}".format(x+y, x, y))

【讨论】:

  • 如果我想用一个数字代替 list2 并且 list1 中的数字加起来应该等于那个数字怎么办?
  • 将条件更改为if x+y == list2,但在这种情况下您可能需要更改变量名称。
猜你喜欢
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
相关资源
最近更新 更多