【问题标题】:Why does it create an empty list()为什么它会创建一个空列表()
【发布时间】:2020-01-18 23:05:49
【问题描述】:

对不起,我是使用 Datacamp 的新手:

Windows 上的 Python 版本 3.7.3 使用 list(generator) 创建一个空列表

result = (num for num in range(10))

print(list(result))

实际输出:

[]

预期输出:

[0, 1, 2, 3..., 9]

【问题讨论】:

  • 它没有。你能粘贴你运行的确切内容吗?那是set,而不是dictionary。另外,我认为这是set comprehension 的错字?
  • 你用的是什么版本的python? {num for num in range(10)} 创建一个包含数字 0-9 的集合。
  • 要么你没有按顺序运行这两行,要么你正在使用其他一些result。在list(result) 中使用之前,您是否对result 做过任何事情?
  • 在这种情况下,我尝试将分配的变量从“结果”更改为其他“测试”,但输出仍然是一个空列表 []...
  • 您是否对结果做了其他事情?比如,在另一个构造函数中使用它?

标签: python list generator


【解决方案1】:

我认为第 2 行应该是这样的:

result = [num for num in range(10)]
print(result)

【讨论】:

  • OP的逻辑没有错误。它工作正常。
  • 虽然这比从 dict 创建列表更有效,但 OP 问题是理解返回一个空容器。交换理解类型只会返回 6 个不同类型的空容器。
  • 我可以按照您指出的那样做,但是,我试图找出生成器和列表之间的区别。我在原始帖子上犯了一个错误,它应该是生成器而不是字典
【解决方案2】:

它在 py3 中运行良好。您正在创建一个集合而不是字典。字典应该有键和值。我们还可以将字典分成两个列表,一个带有键,另一个带有值。

【讨论】:

  • Stack Overflow 上有一个简单的规则:没有代码截图。将其发布为代码格式的文本。
猜你喜欢
  • 2015-03-29
  • 1970-01-01
  • 2019-07-10
  • 2021-08-09
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 2016-05-30
相关资源
最近更新 更多