CodeGym /Khóa học Java /Python SELF VI /Làm việc nâng cao với tuples

Làm việc nâng cao với tuples

Python SELF VI
Mức độ , Bài học
Có sẵn

15.1 Tạo bản sao của tuple

Rồi, chúng ta đã biết rằng tuples là những chuỗi phần tử không thể thay đổi. Vì tính bất biến của chúng, việc tạo bản sao tuple có thể trông như một nhiệm vụ không quan trọng, bởi khác với list, tuples không bị thay đổi sau khi được tạo ra.

Tuy nhiên trong một số trường hợp, có thể cần tạo ra bản sao của tuple, đặc biệt khi bạn cần làm việc với một phiên bản riêng biệt mà không thay đổi dữ liệu gốc. Dưới đây là một số cách chính:

Gán trực tiếp

Cách đơn giản nhất để tạo bản sao của một tuple là sử dụng phép gán trực tiếp. Điều này sẽ tạo ra một đối tượng tuple mới, nhưng do tuples là bất biến, cả hai đối tượng sẽ tham chiếu đến cùng một dữ liệu.


original_tuple = (1, 2, 3, 4, 5)
copied_tuple = original_tuple
print(copied_tuple)
        

Trong trường hợp này, copied_tuple sẽ tham chiếu tới cùng một đối tượng với original_tuple.

Sử dụng hàm tuple()

Một cách khác để tạo bản sao của tuple là sử dụng hàm tích hợp tuple(). Hàm này tạo ra một tuple mới bằng cách sao chép các phần tử từ tuple gốc.


original_tuple = (1, 2, 3, 4, 5)
copied_tuple = tuple(original_tuple)
print(copied_tuple)
        

Cách này đặc biệt hữu dụng khi bạn muốn chắc chắn rằng mình đang tạo ra một đối tượng mới, ngay cả khi đối tượng gốc có thể là một đối tượng có thể lặp khác.

Chuyển đổi qua list

Đôi khi có thể cần tạo một bản sao có thể thay đổi của tuple dưới dạng một list, để bạn có thể thực hiện các thay đổi và sau đó chuyển đổi lại thành tuple.


original_tuple = (1, 2, 3, 4, 5)
temp_list = list(original_tuple)
temp_list.append(6)
copied_tuple = tuple(temp_list)
            
print(copied_tuple)
        

Trong ví dụ này, trước tiên chúng ta chuyển đổi tuple thành list, thêm một phần tử mới, sau đó chuyển đổi list trở lại thành tuple.

15.2 Kết hợp tuples

Không giống như list, bạn không thể thay đổi một tuple sau khi tạo, nhưng bạn có thể tạo ra các tuple mới bằng cách kết hợp các tuple hiện có. Kết hợp tuples là một thao tác phổ biến có thể hữu ích trong nhiều tình huống lập trình khác nhau.

Các cách chính để kết hợp tuples

Nối chuỗi

Cách đơn giản nhất để kết hợp hai hoặc nhiều tuples là sử dụng toán tử +. Cách này tạo ra một tuple mới là kết quả của việc nối chuỗi các tuples gốc.


tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2
            
print(combined_tuple)
        

Trong ví dụ này, combined_tuple sẽ chứa các phần tử (1, 2, 3, 4, 5, 6).

Nhân với số nguyên

Bạn cũng có thể sử dụng toán tử * để nhân một tuple với một số nguyên. Điều này lặp lại tuple một số lần nhất định và tạo ra một tuple mới.


tuple1 = (1, 2, 3)
multiplied_tuple = tuple1 * 3
            
print(multiplied_tuple)
        

Ở đây multiplied_tuple sẽ chứa các phần tử (1, 2, 3, 1, 2, 3, 1, 2, 3).

Hàm itertools.chain

Để kết hợp một số lượng lớn tuples, bạn có thể sử dụng hàm chain từ mô-đun itertools. Điều này tiện lợi khi số lượng tuples để kết hợp không được biết trước.


from itertools import chain

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
tuple3 = (7, 8, 9)
            
combined_tuple = tuple(chain(tuple1, tuple2, tuple3))
print(combined_tuple)
        

Kết quả sẽ là (1, 2, 3, 4, 5, 6, 7, 8, 9).

15.3 Tuples lồng

Tuples chứa các tuples khác bên trong được gọi là tuples lồng (nested tuples). Tuples lồng cung cấp một cách tiện lợi để tổ chức và cấu trúc dữ liệu, đặc biệt khi cần biểu diễn dữ liệu đa chiều hoặc cấu trúc phức tạp.

Bạn có thể kết hợp tuples để tạo ra các cấu trúc lồng nhau. Điều này hữu ích cho việc tổ chức dữ liệu trong các cấu trúc đa chiều. Tạo một tuple lồng trong Python cũng đơn giản như tạo một tuple thông thường. Bạn chỉ cần đưa một tuple vào một tuple khác.


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
        

Trong ví dụ này, nested_tuple chứa ba tuples, mỗi tuple gồm ba phần tử.

Ví dụ tạo tuple lồng từ các tuple thường:

Trong ví dụ này, nested_tuple chứa ba tuples, mỗi tuple gồm ba phần tử.


tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
nested_tuple = (tuple1, tuple2)
            
print(nested_tuple)
        

Ở đây nested_tuple sẽ chứa ((1, 2, 3), (4, 5, 6)).

Truy cập các phần tử của tuple lồng

Truy cập các phần tử của tuple lồng được thực hiện bằng cách sử dụng chỉ mục kép. Đầu tiên bạn chỉ định chỉ mục cho tuple bên ngoài, sau đó cho tuple bên trong.


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

# Dùng để truy cập phần tử 5 trong tuple lồng thứ hai
element = nested_tuple[1][1]
print(element)  # Output: 5
        

Mảng đa chiều

Tuples lồng thường được sử dụng để biểu diễn mảng hai hoặc nhiều chiều. Ví dụ, một bảng dữ liệu có thể được biểu diễn như một tuple các tuples, trong đó mỗi hàng của bảng là một tuple riêng biệt.

Cấu trúc dữ liệu

Tuples lồng tiện lợi cho việc cấu trúc dữ liệu, chẳng hạn như tọa độ địa lý (vĩ độ và kinh độ) cho nhiều địa điểm khác nhau:


locations = (("New York", (40.7128, -74.0060)), 
             ("Los Angeles", (34.0522, -118.2437)), 
             ("Chicago", (41.8781, -87.6298)))
        
1
Опрос
Tuple trong Python,  8 уровень,  6 лекция
недоступен
Tuple trong Python
Tuple trong Python
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION