大括号不是作为字典而是作为循环反向器?

时间:2018-10-04 08:06:07

标签: python python-3.x curly-braces

what-is-the-meaning-of-curly-braces说它们用于字典,但是这个例子呢?

resp = {
    requests.get('http://localhost:8000')
    for i in range(20)
}

取自here(实际上它使用[],但也可以与{}一起使用)。这是什么意思,为什么这个循环是颠倒的?

1 个答案:

答案 0 :(得分:6)

弯括号也用于组合。这是集合理解。它创建20个requests.get对象的集合,仅保留唯一的对象。

如果您使用[]而不是{},则它是列表理解。它们相似,但有两个区别

  • 列表是有序的
  • 列表可以有个重复元素

此外,正如您提到的,这是发出请求的一种不好的方式。理解应该用于创建列表/集,而不是用于作为副产品调用许多命令。在这种情况下,一个简单的for循环会更好,使意图更清晰。