1. ホーム
  2. python

[解決済み] Pythonで[ ]を使わずにリスト内包をする

2023-02-05 15:01:18

質問

リストに参加する。

>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'

join はイテラブルを取る必要があります。

どうやら join の引数は [ str(_) for _ in xrange(10) ] であり、それは リスト内包 .

これを見てください。

>>>''.join( str(_) for _ in xrange(10) )
'0123456789'

今すぐ join の引数は単に str(_) for _ in xrange(10) はない。 [] であっても、結果は同じです。

どうして?は str(_) for _ in xrange(10) もリストやイテラブルを生成するのでしょうか?

どのように解決するのですか?

>>>''.join( str(_) for _ in xrange(10) )

これは ジェネレータ式 で説明されています。 PEP 289 .

ジェネレータ式とリスト内包の主な違いは、前者がメモリ上にリストを作成しないことです。

式の書き方には3つ目があることに注意してください。

''.join(map(str, xrange(10)))