54

リスト内包表記から 2 つのリストを返すことは可能ですか? まあ、これは明らかにうまくいきませんが、次のようなものです:

rr, tt = [i*10, i*12 for i in xrange(4)]

したがってrr、両方とも、それぞれ およびttからの結果を含むリストです。どうもありがとうi*10i*12

4

3 に答える 3

87
>>> rr,tt = zip(*[(i*10, i*12) for i in xrange(4)])
>>> rr
(0, 10, 20, 30)
>>> tt
(0, 12, 24, 36)
于 2012-05-07T09:01:19.457 に答える
-2

要素がリストの場合、リスト内包表記は複数のリストを返すことができます。たとえば、次のようになります。

>>> x, y = [[] for x in range(2)]
>>> x
[]
>>> y
[]
>>>

関数を使用したトリックでzipうまくいきますが、ループを使用して結果をリストに収集するだけで、実際にははるかに簡単で読みやすくなります。

于 2012-05-07T09:17:40.950 に答える