python列表综合,将整数添加到不同的列表中



我面临的问题是结果列表中的列表理解值。我有两个列表。当我尝试循环时。预期值是我想要的(7 4 2 -1 0(,但是我不需要需要的整数值列表。当使用列表理解时,我只有4个值[4、2,-1、0]。我不明白我的逻辑会发生什么。如果有人帮助我,请查看代码。

l1 = [3, 6, 9, 2, 11, 14, 13]
f = [7]

减去L1的最后一个元素到L1 nth元素。我正在尝试此公式(请参见代码更可理解(:

l2 = l1[-1]-l1[n]

之后,我试图将其他条件放在这样的情况下:

if l2 <= f:
        print(l3)

这是我尝试循环的代码

In [230]: for l2 in l1:
 ...:     l3 = l1[-1]-l2
 ...:     #print(l3)
 ...:     for f1 in f:
 ...:         if l3<=f1:
 ...:             print(l3)
 ...:             
 ...:         
7
4
2
-1
0

对于列表理解代码是:

  for f1 in f:
      f1
In [47]: l1 = [x[-1] - l for l in x if l >= int(f1)]
...: 
In [48]: l1
Out[48]: [4, 2, -1, 0]

您的列表理解不与您的for循环匹配。
您必须替换:

[x[-1] - l for l in x if l >= int(f1)]

with:

[(l1[-1] - l) for l in l1 if (l1[-1] - l) <= int(f1)]

提供预期的输出。

(我添加了括号以获得更好的可读性(

最新更新