01/10/2018, 01:02

Lesson 32 learnpythonhardway

Hi anh chị,
em chạy lệnh này bị báo lỗi, anh chị giúp em fix dùm, em check vài lần mà ko tìm dc error

>>> d = [1,2,3],[4,5,6]
>>> d.append([7,8,9])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
Nguyễn Văn Tâm viết 03:10 ngày 01/10/2018

Trong python thì tuple không thay đổi được nên không có append

Nguyen Trung viết 03:03 ngày 01/10/2018

hình như cái này không phải lỗi do tuple mà là do phần khai báo List d bị sai
phải là d = [[1,2,3],[4,5,6]] thì đúng hơn vì nếu khai báo là d = [1,2,3],[4,5,6] thì d sẽ thành ([1,2,3],[4,5,6])(cái này gọi là Tuple) mà Tuple thì không có các method để edit

ngoc viết 03:16 ngày 01/10/2018

ple không thay đổi được nên không có append

Cám ơn anh Trung nhiều, em đã viết sai d ko (), nhung sao e co co dau () chi chay d[1], d[0] đều đúng, zậy d có() và không () khác nhau sao anh?

Nguyen Trung viết 03:13 ngày 01/10/2018

trong trường hợp đó d không có () hay có đều cùng ra một kết quả. Khi gán một giá trị bằng 2 list hay 3 list thì nó tự biến thành tuple ( như bạn biết tuple thì không dùng được append() còn nếu bạn thay ngoặc () thành [] như d = [[1,2,3],[4,5,6]] thì đây được coi là một list. nhưng khi bạn gọi nó ra thì dù là tuple hay là list thì kết quả của bạn đều như nhau. Chỉ khác duy nhất là một cái có thể dùng append().

ngoc viết 03:08 ngày 01/10/2018

Cám ơn anh Trung, em đã chạy lại thấy đúng như anh giải thích [[]] kết quả là 1 list, còn ([]) kết quả là tuple nên ko dùng hàm append() để add thêm giá trị ở sau.

Bài liên quan
0