【问题标题】:Python List Comprehensions Adding integer in to diffrent list?Python列表理解将整数添加到不同的列表中?
【发布时间】:2018-02-08 13:16:57
【问题描述】:

我在结果列表中遇到列表理解缺失值的问题。我有两个清单。当我尝试使用 for 循环时。值是我想要的(7 4 2 -1 0),但我不需要需要列表中的整数值。当使用列表理解时,我只得到 4 个值 [4, 2, -1, 0]。我不明白我的逻辑会发生什么。如果有谁帮我看看代码。

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

将 l1 最后一个元素减到 l1 第 n 个元素。 我正在尝试这个公式(请看代码更容易理解):

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

然后,我尝试将 if else 条件放入如下:

if l2 <= f:
        print(l3)

这是我在 for 循环中尝试的代码

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]

【问题讨论】:

标签: python python-3.x ipython list-comprehension


【解决方案1】:

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

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

与:

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

它给出了预期的输出。

(为了更好的可读性,我添加了括号)

【讨论】:

  • 是的,尽管 OP 可能会根据 cmets 不同意。
猜你喜欢
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 2011-06-06
相关资源
最近更新 更多