sparklesBài tập List Comprehension - Nâng cao

Bài tập về List Comprehension - Nâng cao

  1. Viết list comprehension tạo ma trận (matrix) 3x3 chứa các số từ 1 đến 9.

matrix = # Code của bạn ở đây
print(matrix)
# Kết quả: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
circle-info

Gợi ý: Dùng nested list comprehension

  1. Cho list matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]. Viết list comprehension để làm phẳng (flatten) ma trận thành list 1 chiều.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = # Code của bạn ở đây
print(flattened)
# Kết quả: [1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. Viết list comprehension tạo ma trận đơn vị (identity matrix) kích thước 4x4.

identity = # Code của bạn ở đây
print(identity)
# Kết quả: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
  1. Cho list words = ["hello", "world", "python", "programming"]. Viết list comprehension tạo dict với key là từ, value là độ dài của từ.

words = ["hello", "world", "python", "programming"]
word_lengths = # Code của bạn ở đây (dùng dict comprehension)
print(word_lengths)
# Kết quả: {'hello': 5, 'world': 5, 'python': 6, 'programming': 11}
  1. Viết list comprehension tạo list các số Fibonacci đầu tiên (từ 0 đến 100).

circle-info

Gợi ý: Không thể dùng list comprehension thuần túy. Hãy tạo một generator function trước.

  1. Cho list numbers = [1, 2, 3, 4, 5]. Viết list comprehension tạo tất cả các cặp (pair) có thể từ list này.

  1. Viết list comprehension tìm tất cả các số là bội số chung của 3 và 5 từ 1 đến 100.

  1. Cho hai list list1 = [1, 2, 3]list2 = [10, 20, 30]. Viết list comprehension tạo list chứa tổng của các phần tử tương ứng.

circle-info

Gợi ý: Dùng hàm zip()

  1. Viết list comprehension tạo list chứa các số nguyên tố từ 2 đến 50.

  1. Cho chuỗi text = "Hello World". Viết list comprehension đếm số lần xuất hiện của mỗi ký tự (không phân biệt hoa thường).

  1. Cho list numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. Viết list comprehension chia list thành các chunks kích thước 3.

  1. Viết list comprehension tạo bảng cửu chương từ 1 đến 10 dưới dạng nested list.

  1. Cho list words = ["Python", "Java", "C++", "Ruby", "Go"]. Viết list comprehension lọc các từ có chứa chữ cái 'a' (không phân biệt hoa thường).

  1. Viết list comprehension chuyển đổi list các số thành chuỗi binary (hệ nhị phân).

circle-info

Gợi ý: Dùng hàm bin()

  1. Cho dict scores = {"Alice": 85, "Bob": 92, "Charlie": 78, "David": 95}. Viết dict comprehension lọc các học sinh có điểm >= 90.

  1. Viết list comprehension tạo list các số hoàn hảo (perfect numbers) từ 1 đến 10000.

circle-info

Số hoàn hảo là số bằng tổng các ước số dương của nó (không kể chính nó). Ví dụ: 6 = 1 + 2 + 3

  1. Cho list matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]. Viết list comprehension chuyển vị (transpose) ma trận.

circle-info

Gợi ý: Dùng zip(*matrix)

  1. Viết list comprehension tạo list các anagram pairs từ list các từ.

  1. Cho list data = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 22}]. Viết list comprehension lấy list tên của những người có tuổi > 23.

  1. Viết list comprehension tạo Pascal's Triangle (tam giác Pascal) với n hàng.

circle-info

Gợi ý: Mỗi phần tử là tổng của hai phần tử ở hàng trên. Có thể cần kết hợp với vòng lặp bình thường.

Last updated