Tôi đang đấu tranh với hành vi kỳ lạ này trong Python (2 và 3):inline Strange phân
>>> a = [1, 2]
>>> a[a.index(1)], a[a.index(2)] = 2, 1
Điều này dẫn đến:
>>> a
[1, 2]
Nhưng nếu bạn viết
>>> a = [1, 2]
>>> a[a.index(1)], a[a.index(2)] = x, y
nơi x, y != 2, 1
(có thể là 1, 1
, 2, 2
, 3, 5
, v.v.), kết quả là:
>>> a == [x, y]
True
Như người ta mong đợi. Tại sao không a[a.index(1)], a[a.index(2)] = 2, 1
tạo kết quả a == [2, 1]
?
>>> a == [2, 1]
False
Bạn đã hỏi một câu hỏi lạ. Tại sao nên 'a [a.index (1)], một [a.index (2)] = 2, 1' in được gì? :) – Alik
Ý tôi là khi yêu cầu giá trị a. Tôi đang lạm dụng ký pháp. XD – Dargor
Related (and devious): http://stackoverflow.com/q/32127908/3001761 – jonrsharpe