1

Python から C++ にいくつかのコードを翻訳しています。私は以下に出くわしました:

set(x for listX in listY for x in listX)

私は C++ に非常に精通しており、Python の基本的な構造をいくつか知っています。上記のコードでは、セットが作成されていることはわかっていますが、括弧内のコードがわかりません。何か助けはありますか?

4

2 に答える 2

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)

注意: セットは重複するエントリを許可しません

于 2012-09-01T06:01:42.257 に答える
3

これは、リスト内包表記に類似したジェネレーター内包表記です。それらを比較する情報については、この前の質問を参照してください。

于 2012-09-01T05:58:51.730 に答える