我正在將一些代碼從Python轉換爲C++。我碰到以下內容:這段代碼是什麼意思?
set(x for listX in listY for x in listX)
我對C++非常熟悉,並且瞭解了Python中的一些基本構造。在上面的代碼中,我知道正在創建一個集合,但我不理解括號內的代碼。任何幫助?
我正在將一些代碼從Python轉換爲C++。我碰到以下內容:這段代碼是什麼意思?
set(x for listX in listY for x in listX)
我對C++非常熟悉,並且瞭解了Python中的一些基本構造。在上面的代碼中,我知道正在創建一個集合,但我不理解括號內的代碼。任何幫助?
listY可能是類似下面的結構,從而擴展代碼:
listY = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = set()
for listX in listY:
for x in listX:
result.add(x)
通知:套不允許重複條目
它是一個generator comprehension,類似於list comprehension。請參閱this previous question瞭解一些信息。
感謝您的鏈接,我發現了一個類似的例子[發電機理解](http://www.python.org/dev/peps/pep-0289/) – Mika
太棒了!謝謝! – Mika
生成器表達式已傳遞給'set',所以一切都立即求值 - 在'set'實現中,當然。 –
事實上,你是完全正確的,我很抱歉,我的錯誤。 – andrean