花括号中的 for 循环是什么意思?

What is the meaning of a for loop in curly braces?

what-is-the-meaning-of-curly-braces说是用来做字典的,但是这个例子呢?

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

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

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

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

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

此外,正如您提到的,这是一种糟糕的请求方式。理解应该用于 创建 list/set,而不是作为副产品调用一些命令。在这种情况下,一个简单的for循环更好,它使意图更清晰。