0

私はこのリスト内包表記構文の単純さが好きです、

waves = [(frequency, amplitude) * wave_count]

しかし、この場合、乗算されたタプルが1つの長いタプルに連結されるのは好きではありません。

タプルを効果的に乗算してリスト内の個別のタプルにする簡単な方法はありますか?

ありがとう、

ビクター

PS

えっ、ちょっと待って!私はそれを理解したばかりですが、それが私を混乱させたので、とにかくこの質問を投稿すると思います。

これはそれをしました:

waves = [(frequency, amplitude)] * wave_count
4

1 に答える 1

3

実際のリスト内包表記を使用します。

waves = [(frequency, amplitude) for _ in range(wave_count)]

または、リストを乗算します。

waves = [(frequency, amplitude)] * wave_count

この場合、タプルは変更できないため、後者は安全です。

最初のオプションは、ループの反復ごとに新しいタプルを作成し、2番目のオプションは、同じタプルwave_countへの参照を使用してリストを展開します。代わりにミュータブル(たとえば、リストやdict)を使用した場合、予期しない結果が生じる可能性がありますが、使用するメモリは少なくなります。

于 2013-03-14T13:37:28.527 に答える