0

2つの空のリストオブジェクトを作成したいと思います。使ってみました

vList,sList = [],[]

そしてそれはうまくいくようです。私はこれをどのマニュアルでも見たことがありません(しかし私のPythonはまだ非常に基本的です)。空でないリストの場合、これを行うと読みやすさが損なわれると思いますが、同じ空のリストでこれを行っても大丈夫ですか?これは悪い習慣と見なされますか、それとも悪い副作用がありますか?

同じことが(空の)文字列にも当てはまりますか?

4

2 に答える 2

1

それが正しい方法です。複数の割り当てがあなたのような単純なケースではあまり役に立たないように思われる場合でも、次のようなものを検討してください(少し複雑なシーケンスを解凍します)。

>>> d = { 'a': 'x', 'b': 'y', 'c': 'z' }
>>> for i, (key, value) in enumerate(d.iteritems()):
...     print (i, key, value)
(0, 'a', 'x')
(1, 'c', 'z')
(2, 'b', 'y')

割り当てが行われる前に右側が完全に評価されることを覚えていれば、有害な副作用はありません。

于 2013-02-20T06:51:19.083 に答える
1

あなたが使用しない限り、悪い副作用はありません

vList = sList = []

これは、両方の変数を同じリストに参照します。

PEP8はこれについて何も言っていないと思いますが、割り当てを2行に分割するとはるかに読みやすくなると思います。

ただし、@ gorlum0で説明したように、オブジェクトが関連していて比較的単純な場合は、タプルの解凍を使用する方がよい場合があります。それらが無関係である場合、読者はおそらく、なぜそれらを1行に配置したのかを理解しようとするとかなり混乱するでしょう。

于 2013-02-20T06:51:38.133 に答える