Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Các cách nối tuple trong Python

Khi cần nối (concatenate) nhiều tuple, toán tử + được sử dụng.

Tuple là kiểu dữ liệu bất biến (immutable): giá trị một khi định nghĩa không thể thay đổi bằng cách truy cập index. Nếu cố gắng thay đổi sẽ gây lỗi. Tuple quan trọng vì đảm bảo truy cập chỉ đọc (read-only).

Toán tử + có thể dùng để cộng giá trị số hoặc nối chuỗi/tuple.

Ví dụ cơ bản

tuple_1 = (11, 14, 0, 78, 33, 11)
tuple_2 = (10, 78, 0, 56, 8, 34)

print(f"Tuple 1: {tuple_1}")
print(f"Tuple 2: {tuple_2}")

# Nối tuple bằng toán tử +
concatenated = tuple_1 + tuple_2
print(f"\nTuple sau khi nối: {concatenated}")
print(f"Độ dài: {len(concatenated)}")

Kết quả

Tuple 1: (11, 14, 0, 78, 33, 11)
Tuple 2: (10, 78, 0, 56, 8, 34)
Tuple sau khi nối: (11, 14, 0, 78, 33, 11, 10, 78, 0, 56, 8, 34)
Độ dài: 12

Giải thích

  • Hai tuple được định nghĩa và hiển thị.
  • Toán tử + tạo tuple mới chứa tất cả phần tử của tuple_1 theo sau tuple_2.
  • Tuple gốc không bị thay đổi (immutable).
  • Kết quả gán vào biến mới.

Nối nhiều tuple cùng lúc

t1 = (1, 2)
t2 = (3, 4)
t3 = (5, 6)

result = t1 + t2 + t3
print(result)  # (1, 2, 3, 4, 5, 6)

Nối tuple với iterable khác (list, range...)

t = (1, 2)
lst = [3, 4]
rng = range(5, 7)

# Cần chuyển về tuple trước
result = t + tuple(lst) + tuple(rng)
print(result)  # (1, 2, 3, 4, 5, 6)

# Python 3.5+: Unpacking (đẹp hơn)
result = (*t, *lst, *rng)
print(result)  # (1, 2, 3, 4, 5, 6)

Lặp tuple (nhân tuple)

t = (1, 2)
print(t * 3)  # (1, 2, 1, 2, 1, 2) - lặp lại nội dung tuple

Lưu ý hiệu năng

Mỗi lần + tạo tuple mới -> O(n) bộ nhớ và thời gian. Nếu nối nhiều lần trong vòng lặp, hãy dùng list rồi chuyển tuple cuối cùng:

# Kém hiệu quả
result = ()
for i in range(1000):
    result += (i,)  # Tạo tuple mới 1000 lần!

# Hiệu quả
temp_list = []
for i in range(1000):
    temp_list.append(i)
result = tuple(temp_list)  # Chỉ tạo tuple 1 lần