我遇到了结果列表中列表理解缺失值的问题。我有两个清单。当我尝试for循环。值是我想要的(7 4 2 -1 0),但我不需要需要列表中的整数值。当使用列表理解我只得到4个值[4,2,-1,0]。我不明白我的逻辑会发生什么。如果有人帮助我,请看一下代码。
l1 = [3, 6, 9, 2, 11, 14, 13]
f = [7]
减去l1最后一个元素到第l1个元素。 我正在尝试这个公式(请参阅代码更易理解):
l2 = l1[-1]-l1[n]
之后,我试图把if else条件放在这样:
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]
答案 0 :(得分:2)
您的列表理解与您的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)]
给出预期的输出。
(为了更好的可读性,我添加了括号)