Đây là một câu hỏi đơn giản về cách Python xử lý dữ liệu và các biến. Tôi đã thực hiện rất nhiều thử nghiệm và đã Python chủ yếu là tìm ra, ngoại trừ điều này sẽ giúp vấp ngã tôi lên:Gán giá trị cho một phần tử của một lát trong Python
[sửa: Tôi tách ra và sắp xếp lại các ví dụ cho rõ ràng]
Ví dụ 1:
>>> a = [[1], 2]
>>> a[0:1]
[[1]]
>>> a[0:1] = [[5]]
>>> a
[[5], 2] # The assignment worked.
Ví dụ 2:
>>> a = [[1], 2]
>>> a[0:1][0]
[1]
>>> a[0:1][0] = [5]
>>> a
[[1], 2] # No change?
Ví dụ 3:
>>> a = [[1], 2]
>>> a[0:1][0][0]
1
>>> a[0:1][0][0] = 5
>>> a
[[5], 2] # Why now?
Ai cũng có thể giải thích cho tôi điều gì đang xảy ra ở đây?
Cho đến nay các câu trả lời dường như tuyên bố rằng a[0:1]
trả về danh sách mới chứa tham chiếu đến phần tử đầu tiên là a
. Nhưng tôi không thấy cách giải thích Ví dụ 1.
Câu hỏi thú vị. Hãy xem Alex nói gì. :) –