我正在将一些代码从Python翻译成C ++。我发现了以下内容:
set(x for listX in listY for x in listX)
我非常精通C ++并且熟悉Python中的一些基本结构。在上面的代码中,我知道正在创建一个集合,但我不理解括号内的代码。有什么帮助吗?
答案 0 :(得分:6)
listY可能类似于下面的结构,因此扩展代码为:
listY = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = set()
for listX in listY:
for x in listX:
result.add(x)
注意:集合不允许重复条目
答案 1 :(得分:3)
这是一个generator comprehension,类似于list comprehension。有关比较它们的一些信息,请参阅this previous question。