13.1 Thêm phần tử mới
Tuples là đối tượng không thể thay đổi. Khi một tuple được tạo ra, bạn không thể thay đổi nó. Nhưng đôi khi, ngay cả khi không thể thay đổi đối tượng, ta có thể cần một bản sao mới với sự thay đổi.
Cũng giống như class str
— nó có hàng chục phương thức mà không thay đổi đối tượng gốc str
, mà trả về một string mới theo đúng phương thức được gọi.
Các lập trình viên Python hoàn toàn có thể thêm vào class tuple
những phương thức để trả về đối tượng mới khi bạn cố gắng thay đổi tuple. Nhưng họ không làm vậy. Lý do có thể để tránh làm chúng ta nhầm lẫn hoặc vì lý do khác.
Vì vậy, mọi thay đổi tuple hoạt động theo cách sau:
list = list(tuple)
chỉnh sửa list ở đây
tuple2 = tuple(list)
append()
:
Ví dụ, bạn muốn thêm phần tử vào tuple, đây là cách làm:
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4) # thêm phần tử vào list
my_new_tuple = tuple(my_list)
Thêm nhiều phần tử — phương thức extend()
:
Phương thức extend()
cho phép thêm nhiều phần tử vào list cùng lúc. Tham số đầu vào của phương thức là một đối tượng iterable (ví dụ như một list, tuple, hoặc set):
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6)) # thêm phần tử vào list
my_new_tuple = tuple(my_list)
Chèn vào giữa — phương thức insert()
Phương thức insert()
thêm một phần tử vào vị trí cụ thể trong list. Phương thức này nhận hai tham số: chỉ số (index) và phần tử cần chèn:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0) # thêm 0 vào đầu list
my_new_tuple = tuple(my_list)
13.2 Thay đổi phần tử
Nếu bạn cần thay đổi một phần tử trong tuple, cách làm vẫn như trên:
list = list(tuple)
# chỉnh sửa list ở đây
tuple2 = tuple(list)
Hãy đổi giá trị đầu tiên thành giá trị cuối cùng và ngược lại. Đây là code bạn cần:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0] # đổi chỗ giá trị
my_new_tuple = tuple(my_list)
print(my_new_tuple) # (4, 2, 3, 1)
13.3 Xóa phần tử
Xóa phần tử tuple cũng theo cách tương tự.
Hãy cùng xem ví dụ khi bạn muốn xóa một giá trị nhất định trong tuple
atuple = ("apple", "banana", "cherry")
alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)
print(atuple) # ('banana', 'cherry')
Lưu ý rằng ở cuối, ta gán đối tượng tuple mới cho biến đã chứa tuple gốc. Bạn có thể làm vậy, nhưng tuple gốc không thay đổi. Nếu ở đâu đó trong code có refer đến tuple gốc, nó vẫn trỏ đến tuple gốc.
Giờ hãy xóa phần tử cuối khỏi tuple.
Đây là code:
atuple = ("apple", "banana", "cherry")
alist = list(atuple)
alist.pop() # xóa phần tử cuối
atuple = tuple(alist)
print(atuple) # ('apple', 'banana')
Mình nghĩ bạn đã hiểu logic rồi. Không thể xóa phần tử trong tuple, nhưng nếu thực sự muốn, bạn vẫn có thể 😊
GO TO FULL VERSION