我面临的问题是结果列表中的列表理解值。我有两个列表。当我尝试循环时。预期值是我想要的(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)]
提供预期的输出。
(我添加了括号以获得更好的可读性(