layer-groupBài tập Tuple - Nâng cao

Các bài tập về Tuple - Nâng cao

  1. Viết hàm merge_tuples nhận vào nhiều tuple (sử dụng *args) và trả về một tuple mới chứa tất cả các phần tử.

def merge_tuples(*tuples):
    # Code của bạn ở đây
    pass

# Test
result = merge_tuples((1, 2), (3, 4), (5, 6))
print(result)  # (1, 2, 3, 4, 5, 6)
  1. Viết hàm tuple_stats nhận vào một tuple chứa các số và trả về một tuple chứa (min, max, trung bình, tổng).

def tuple_stats(numbers):
    # Code của bạn ở đây
    pass

# Test
numbers = (10, 20, 30, 40, 50)
stats = tuple_stats(numbers)
print(stats)  # (10, 50, 30.0, 150)
  1. Tạo tuple lồng nhau students chứa thông tin của 5 học sinh (mỗi học sinh là một tuple gồm tên, tuổi, điểm). Viết chương trình:

  • In ra thông tin của học sinh thứ 3

  • In ra tên của tất cả học sinh

  • Tìm học sinh có điểm cao nhất

  1. Viết hàm unpack_with_star nhận vào một tuple có ít nhất 3 phần tử và unpacking với cú pháp first, *middle, last. In ra từng phần.

  1. Viết hàm reverse_tuple đảo ngược thứ tự các phần tử trong tuple và trả về tuple mới.

circle-info

Gợi ý: Có thể dùng slicing [::-1] hoặc hàm reversed()

  1. Viết hàm find_duplicates nhận vào một tuple và trả về tuple chứa các phần tử xuất hiện nhiều hơn 1 lần.

  1. Viết hàm tuple_intersection nhận vào hai tuple và trả về tuple mới chứa các phần tử có trong cả hai tuple.

  1. Viết hàm tuple_difference nhận vào hai tuple và trả về tuple chứa các phần tử có trong tuple1 nhưng không có trong tuple2.

  1. Viết hàm sort_tuple nhận vào một tuple chứa các số và trả về tuple mới đã được sắp xếp tăng dần.

circle-info

Gợi ý: Chuyển sang list, sort, rồi chuyển lại tuple

  1. Viết hàm split_tuple nhận vào một tuple và một số n, chia tuple thành hai tuple tại vị trí n.

  1. Tạo dictionary với tuple làm key. Ví dụ: lưu trữ thông tin về các điểm trên bản đồ (toạ độ x, y) và tên địa điểm.

  1. Viết hàm flatten_tuple nhận vào một tuple lồng nhau và trả về tuple phẳng (không còn tuple con).

circle-info

Gợi ý: Dùng đệ quy hoặc vòng lặp với isinstance()

  1. Viết hàm tuple_frequency nhận vào một tuple và trả về dictionary đếm số lần xuất hiện của mỗi phần tử.

  1. Viết hàm create_tuple_from_string chuyển đổi một chuỗi thành tuple, trong đó mỗi từ là một phần tử.

  1. Viết hàm compare_tuples nhận vào hai tuple và trả về True nếu chúng có cùng phần tử (không quan tâm thứ tự), ngược lại trả về False.

  1. Viết hàm zip_tuples nhận vào nhiều tuple có cùng độ dài và trả về tuple của các tuple (mỗi tuple con chứa các phần tử tại cùng vị trí).

circle-info

Gợi ý: Dùng hàm zip() hoặc vòng lặp

  1. Viết hàm rotate_tuple nhận vào một tuple và số n, xoay tuple sang phải n vị trí.

  1. Viết hàm remove_item nhận vào một tuple và một giá trị, trả về tuple mới không chứa giá trị đó (xoá tất cả các lần xuất hiện).

  1. Viết hàm get_unique_elements nhận vào một tuple và trả về tuple mới chỉ chứa các phần tử duy nhất (không trùng lặp), giữ nguyên thứ tự xuất hiện đầu tiên.

  1. Viết hàm partition_tuple nhận vào một tuple chứa các số và một giá trị pivot, trả về hai tuple: một chứa các số nhỏ hơn pivot, một chứa các số lớn hơn hoặc bằng pivot.

  1. Viết chương trình tạo tuple chứa 10 số ngẫu nhiên từ 1 đến 100, sau đó:

  • Tính giá trị trung bình

  • Tìm phương sai (variance)

  • Tìm độ lệch chuẩn (standard deviation)

circle-info

Gợi ý: Dùng module random để tạo số ngẫu nhiên

  1. Viết hàm most_common nhận vào một tuple và trả về phần tử xuất hiện nhiều nhất.

  1. Viết hàm tuple_product nhận vào một tuple chứa các số và trả về tích của tất cả các số.

  1. Viết hàm alternate_elements nhận vào hai tuple và trả về tuple mới chứa các phần tử xen kẽ từ hai tuple.

  1. Viết hàm cumulative_sum nhận vào một tuple chứa các số và trả về tuple mới chứa tổng tích lũy.

Last updated