Python bài 11: Kiểu dữ liệu tập hợp – Collection trong Python

Hướng Dẫn Viết Chương Trình "Hello World" Đầu Tiên Với Python

1. Giới thiệu về Collection trong Python

Python cung cấp nhiều kiểu dữ liệu Collection (tập hợp) giúp lưu trữ và quản lý nhiều phần tử trong một biến. Các kiểu dữ liệu Collection chính trong Python gồm:

Kiểu dữ liệuĐặc điểm chínhCó thứ tự không?Có thể thay đổi không?Cho phép trùng lặp?
ListDanh sách có thể thay đổi✅ Có✅ Có✅ Có
TupleDanh sách bất biến✅ Có❌ Không✅ Có
SetTập hợp không có thứ tự, không trùng lặp❌ Không✅ Có❌ Không
DictionaryTập hợp key-value✅ Có (Python 3.7+)✅ Có❌ Không (trùng key sẽ bị ghi đè)

2. Kiểu danh sách (List)

2.1. Khai báo danh sách

<h1>Danh sách rỗng</h1>
my_list = []
<h1>Danh sách chứa các phần tử</h1>
fruits = ["Táo", "Chuối", "Cam"]
<h1>Danh sách có nhiều kiểu dữ liệu khác nhau</h1>
mixed_list = [1, "Python", True, 3.14]

2.2. Truy cập phần tử

fruits = ["Táo", "Chuối", "Cam"]

print(fruits[0])   # Táo (truy cập phần tử đầu tiên)
print(fruits[-1])  # Cam (truy cập phần tử cuối)
print(fruits[1:3]) # ['Chuối', 'Cam'] (lấy phần tử từ chỉ mục 1 đến 2)
```
<h3><strong>2.3. Thêm và xóa phần tử</strong></h3>
[python]
fruits.append("Dưa hấu")   # Thêm vào cuối
fruits.insert(1, "Lê")     # Thêm vào vị trí cụ thể
fruits.remove("Chuối")     # Xóa phần tử
fruits.pop()               # Xóa phần tử cuối cùng
fruits.clear()             # Xóa toàn bộ danh sách

2.4. Duyệt danh sách bằng vòng lặp

for fruit in fruits:
print(fruit)

3. Kiểu bộ (Tuple)

3.1. Khai báo Tuple

my_tuple = (1, 2, 3, "Python", True)

3.2. Truy cập phần tử

print(my_tuple[0])   # 1
print(my_tuple[-1])  # True
print(my_tuple[1:3]) # (2, 3)

3.3. Không thể thay đổi giá trị

my_tuple[0] = 100  # Lỗi: tuple không thể thay đổi

3.4. Tuple có thể chứa danh sách

nested_tuple = (1, [2, 3], "Python")
nested_tuple[1][0] = 100  # Có thể thay đổi danh sách bên trong tuple

4. Kiểu tập hợp (Set)

4.1. Khai báo Set

my_set = {1, 2, 3, 4}
another_set = set([5, 6, 7])

4.2. Set không cho phép phần tử trùng lặp

unique_set = {1, 2, 2, 3, 4}
print(unique_set)  # {1, 2, 3, 4}

4.3. Thêm và xóa phần tử

my_set.add(5)        # Thêm phần tử
my_set.remove(2)     # Xóa phần tử (báo lỗi nếu không tồn tại)
my_set.discard(3)    # Xóa phần tử (không báo lỗi nếu không tồn tại)
my_set.clear()       # Xóa toàn bộ set

4.4. Toán tử trên Set

set1 = {1, 2, 3}
set2 = {3, 4, 5}

print(set1 | set2)  # {1, 2, 3, 4, 5} (hợp)
print(set1 &amp; set2)  # {3} (giao)
print(set1 - set2)  # {1, 2} (phần khác nhau)
print(set1 ^ set2)  # {1, 2, 4, 5} (phần tử chỉ xuất hiện trong 1 set)

5. Kiểu từ điển (Dictionary)

5.1. Khai báo Dictionary

student = {
"name": "John",
"age": 21,
"major": "Computer Science"
}

5.2. Truy cập giá trị

print(student["name"])   # John
print(student.get("age")) # 21

5.3. Thêm, cập nhật, xóa phần tử

student["gender"] = "Male"  # Thêm mới key-value
student["age"] = 22         # Cập nhật giá trị
del student["major"]        # Xóa một key
student.pop("age")          # Xóa key "age"
student.clear()             # Xóa toàn bộ dictionary

5.4. Duyệt Dictionary

for key, value in student.items():
print(key, ":", value)

6. Bài tập về Collection

Dưới đây là 10 bài tập thực hành về Collection (List, Tuple, Set, Dictionary) trong Python, kèm theo gợi ý giải.

BÀI TẬP VỀ LIST

Bài 1: Tính tổng và trung bình cộng các phần tử trong danh sách

Viết chương trình nhập vào một danh sách n số nguyên, sau đó tính tổngtrung bình cộng của các phần tử trong danh sách.

Ví dụ:

Nhập số lượng phần tử: 5
Nhập phần tử thứ 1: 10
Nhập phần tử thứ 2: 20
Nhập phần tử thứ 3: 30
Nhập phần tử thứ 4: 40
Nhập phần tử thứ 5: 50
Tổng: 150
Trung bình cộng: 30.0

Gợi ý giải:

n = int(input("Nhập số lượng phần tử: "))
lst = []

for i in range(n):
num = int(input(f"Nhập phần tử thứ {i+1}: "))
lst.append(num)

tong = sum(lst)
trung_binh = tong / len(lst)

print("Tổng:", tong)
print("Trung bình cộng:", trung_binh)

Bài 2: Tìm số lớn nhất và nhỏ nhất trong danh sách

Viết chương trình tìm số lớn nhấtsố nhỏ nhất trong một danh sách số nguyên.

Gợi ý giải:

numbers = [12, 5, 8, 34, 89, 1]
print("Số lớn nhất:", max(numbers))
print("Số nhỏ nhất:", min(numbers))

Bài 3: Đảo ngược danh sách

Viết chương trình đảo ngược thứ tự các phần tử trong danh sách.

Gợi ý giải:

numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print("Danh sách sau khi đảo ngược:", numbers)

Bài 4: Loại bỏ phần tử trùng lặp trong danh sách

Viết chương trình loại bỏ các phần tử trùng lặp trong danh sách.

Gợi ý giải:

numbers = [1, 2, 3, 2, 4, 5, 1]
unique_numbers = list(set(numbers))
print("Danh sách sau khi loại bỏ trùng lặp:", unique_numbers)

BÀI TẬP VỀ TUPLE

Bài 5: Tính tổng các phần tử trong Tuple

Viết chương trình tính tổng tất cả các phần tử trong một Tuple số nguyên.

Gợi ý giải:

my_tuple = (10, 20, 30, 40)
tong = sum(my_tuple)
print("Tổng các phần tử:", tong)

Bài 6: Chuyển đổi Tuple thành List và ngược lại

Viết chương trình chuyển đổi một Tuple thành List và ngược lại.

Gợi ý giải:

my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
print("Danh sách:", my_list)

new_tuple = tuple(my_list)
print("Tuple:", new_tuple)

BÀI TẬP VỀ SET

Bài 7: Tìm phần tử chung giữa hai Set

Viết chương trình nhập vào hai Set và tìm phần tử chung giữa chúng.

Ví dụ:

Set 1: {1, 2, 3, 4}
Set 2: {3, 4, 5, 6}
Phần tử chung: {3, 4}

Gợi ý giải:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
common_elements = set1 &amp; set2
print("Phần tử chung:", common_elements)

Bài 8: Hợp hai Set và loại bỏ trùng lặp

Viết chương trình nhập vào hai Set, sau đó hợp nhất chúng lại và loại bỏ phần tử trùng lặp.

Gợi ý giải:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
merged_set = set1 | set2
print("Set sau khi hợp nhất:", merged_set)

BÀI TẬP VỀ DICTIONARY

Bài 9: Đếm số lần xuất hiện của từ trong chuỗi

Viết chương trình đếm số lần xuất hiện của từng từ trong một chuỗi và lưu vào Dictionary.

Ví dụ:

Nhập chuỗi: python python java python c++
Kết quả: {'python': 3, 'java': 1, 'c++': 1}

Gợi ý giải:

text = input("Nhập chuỗi: ").split()
word_count = {}

for word in text:
word_count[word] = word_count.get(word, 0) + 1

print("Kết quả:", word_count)

Bài 10: Quản lý thông tin sinh viên

Viết chương trình tạo một Dictionary chứa thông tin của một sinh viên gồm:

  • name: Tên sinh viên
  • age: Tuổi
  • major: Ngành học

Sau đó, in ra thông tin sinh viên theo từng dòng.

Ví dụ:

Nhập tên: John
Nhập tuổi: 20
Nhập ngành học: CNTT

Thông tin sinh viên:
Tên: John
Tuổi: 20
Ngành học: CNTT

Gợi ý giải:

student = {}

student["name"] = input("Nhập tên: ")
student["age"] = int(input("Nhập tuổi: "))
student["major"] = input("Nhập ngành học: ")

print("\nThông tin sinh viên:")
for key, value in student.items():
print(f"{key.capitalize()}: {value}")

6. Tổng kết

Kiểu dữ liệuĐặc điểm chính
ListCó thứ tự, thay đổi được, cho phép trùng lặp
TupleCó thứ tự, không thay đổi được, cho phép trùng lặp
SetKhông có thứ tự, không cho phép trùng lặp
DictionaryLưu trữ theo cặp key-value, không trùng key

Total
0
Shares
Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Previous Post
Hướng Dẫn Viết Chương Trình "Hello World" Đầu Tiên Với Python

Python bài 12: Khai báo và sử dụng hàm trong Python

Next Post
Hướng Dẫn Viết Chương Trình "Hello World" Đầu Tiên Với Python

Python bài 10: Bài tập về lệnh rẽ nhánh và vòng lặp

Related Posts