Nếu mình viết tách ra thì được
list.sort()
print(list)
Nhưng nếu mình viết
print(list.sort()) thì kết quả trả về là none
Mình nghĩ : chắc là không được lồng kiểu đấy, nhưng mình viết
print(str.upper())
nó vẫn chạy.
Tại sao kết quả trả về của print(list.sort()) lại là none?
Đơn giản là hàm sort
trả về None
Còn hàm str.upper()
(với str ở đây là variable
) thì trả về str
( str ở đây là kiểu dữ liệu)
5 Likes
Hàm sort() chỉ sort list đã có sẵn, nó không return gì cả, nên khi
print(list.sort())
thì nó sẽ ra None (vì nó không return thêm cái gì mới)
mà thay vào đó, nó sort() lại cái list đã có.
Thay vì làm vậy, bạn có thể làm như vầy:
# có thể là bạn muốn cái này
list = ['123', '0123', '234', 'asd', '234']
print(list)
print(sorted(list))
Nó sẽ ra như vầy:
[‘123’, ‘0123’, ‘234’, ‘asd’, ‘234’]
[‘0123’, ‘123’, ‘234’, ‘234’, ‘asd’]
[Finished in 0.2s]
Khác biệt là:
list.sort() sort chính bản thân nó
sorted(list) tạo ra 1 copy của cái list rồi sort cái copy đó, list cũ vẫn không thay đổi.
7 Likes
Rất dễ hiểu, cảm ơn bạn!
1 Like