それで、私はかなり奇妙なことに出くわしたので、なぜこれが当てはまるのかについて誰かが知っているかどうか尋ねたいと思いました.
リストにいくつかのデータがあり、タプルのすべての値をそのリストに追加したい (のようにlist.extend
)
>>> data = [0,1,2,3,4]
>>> data += (21,22,23) # all is well
>>> print(data)
[0, 1, 2, 3, 4, 21, 22, 23]
また
>>> data = [0,1,2,3,4]
>>> data.extend( (21,22,23) ) # all is well
>>> print(data)
[0, 1, 2, 3, 4, 21, 22, 23]
でも
>>> data = [0,1,2,3,4]
>>> data = data + (21,22,23)
TypeError: can only concatenate list (not "tuple") to list
これら 2 つは同じ操作のように見えますが、後者は失敗します。これから私が取ることは、後者が使用しないように whereを+=
使用するということですが、それはそうです。extend
誰かがこれらの操作の違いを説明できますか?さらに興味深いのはなぜですか?
これは、2.7.3 と 3.2.1 の両方で発生するようです。