Bài 22. Kiểu dữ liệu danh sách SGK Tin học 10 Kết nối tri thức
Khởi tạo dữ liệu danh sách như thế nào? Cách truy cập, thay đổi giá trị và xoá một phần tử trong danh sách như thế nào?
Khởi động
Trả lời câu hỏi mở đầu trang 111 SGK Tin học 10
Em đã được học những kiểu dữ liệu cơ bản của Python như số nguyên, số thực, xâu kí tự, kiểu dữ liệu logic. Tuy nhiên, khi em cần lưu một dãy các số hay một danh sách học sinh thì cần kiểu dữ liệu dạng danh sách (còn gọi là dãy hay mảng). Kiểu dữ liệu danh sách được dùng nhiều nhất trong Python là kiểu list.
Em hãy tìm một số dữ liệu kiểu danh sách thường gặp trên thực tế.
Phương pháp giải:
Liên hệ thực tế một số dữ liệu kiểu danh sách thường gặp
Lời giải chi tiết:
Một số dữ liệu kiểu danh sách thường gặp trên thực tế là: danh sách các học sinh trong lớp, bảng điểm, danh sách học sinh được khen thưởng, báo cáo các khoản thu, chi...
Hoạt động 1
Trả lời câu hỏi Hoạt động 1 trang 111 SGK Tin học 10
Khởi tạo dữ liệu danh sách như thế nào? Cách truy cập, thay đổi giá trị và xoá một phần tử trong danh sách như thế nào?
Phương pháp giải:
Dựa vào lý thuyết trong phần 1. Kiểu dữ liệu danh sách
Lời giải chi tiết:
- Khởi tạo dữ liệu danh sách: <tên list> = [<v 1 >, <v 2 >, …, <v n >]
- Truy cập các phần tử thông qua chỉ số, bắt đầu từ 0.
- Thay đổi giá trị của từng phần tử bằng lệnh gán hoặc xoá phần tử bằng lệnh del
? mục 1
Trả lời câu hỏi mục 1 trang 112 SGK Tin học 10
1. Cho danh sách A = [1, 0, "One", 9, 15, "Two", True, False]. Hãy cho biết giá trị các phần tử:
a) A[0]
b) A[2]
c) A[7]
d) A[len(A)]
Phương pháp giải:
Lệnh len() là lệnh tính độ dài của danh sách
Lời giải chi tiết :
a) A[0] = 1
b) A[2] = “One”
c) A[7] = False
d) A[len(A)]: lỗi chỉ số
2. Giả sử A là một danh sách các số, mỗi lệnh sau thực hiện công việc gì?
a) A = A + [10]
b) del A[0]
c) A = [100] + A
d) A[1]*25
Phương pháp giải:
Dựa vào kiến thức trong phần 1. Kiểu dữ liệu danh sách
Lời giải chi tiết :
a) Thêm phần tử 10 vào cuối danh sách
b) Xóa phần tử đầu tiên của danh sách
c) Thêm phần tử 100 vào đầu danh sách
d) Thiết lập biến A mới là tích của 25 với giá trị phần tử thứ hai của danh sách A
Hoạt động 2
Trả lời câu hỏi Hoạt động 2 trang 112 SGK Tin học 10
Quan sát các lệnh sau để biết cách dùng lệnh for duyệt lần lượt các phần tử của một danh sách.
Phương pháp giải:
Quan sát các lệnh
Lời giải chi tiết :
Có thể duyệt từng lần lượt các phần tử của một danh sách bằng lệnh for kết hợp với vùng giá trị của lệnh range().
? mục 2
Trả lời câu hỏi mục 2 trang 113 SGK Tin học 10
1 . Giải thích các lệnh ở mỗi câu sau thực hiện công việc gì?
Phương pháp giải:
Có thể duyệt lần lượt các phần tử của danh sách bằng lệnh for kết hợp với vùng giá trị của lệnh range()
Lời giải chi tiết :
a) Gán S = 0;
Duyệt các phần tử trong danh sách A và tính tổng các phần tử lớn hơn 0 của A
In kết quả S ra màn hình
b) Gán C = 0;
Duyệt các phần tử trong danh sách A và đếm số lượng các phần tử lớn hơn 0 của A
In kết quả C ra màn hình
2. Cho dãy số nguyên A, viết chương trình in ra các số chẵn của A.
Phương pháp giải:
Dựa vào kiến thức đã học để viết chương trình
Lời giải chi tiết :
A=[2, 6, 3, 6, 9]
for i in range(len(A)):
if(A[i]%2==0):
print (A[i], end = " ")
Hoạt động 3
Trả lời câu hỏi Hoạt động 3 trang 113 SGK Tin học 10
Quan sát các lệnh sau đây để biết cách thêm phần tử vào một danh sách bằng phương thức append().
Phương pháp giải:
Quan sát các lệnh
Lời giải chi tiết :
Cách thêm phần tử vào cuối một danh sách bằng phương thức append():
Cú pháp: .append()
? mục 3
Trả lời câu hỏi mục 3 trang 113 SGK Tin học 10
1. Sau khi thêm một phần tử vào danh sách A bằng lệnh append() thì độ dài danh sách A thay đổi như thế nào?
Phương pháp giải:
Độ dài danh sách A sẽ thêm phần tử trong dấu ( ) sau append vào đuôi danh sách.
Lời giải chi tiết :
Sau khi thêm một phần tử vào danh sách A bằng lệnh append() thì độ dài danh sách A tăng thêm 1.
2. Danh sách A sẽ như thế nào sau các lệnh sau?
Phương pháp giải:
Lệnh thêm phần tử vào cuối danh sách là .append()
Lệnh del là lệnh xóa một phần tử của danh sách
Lời giải chi tiết :
Sau lệnh ">>> A. append(100)", danh sách A hiển thị [2, 4, 10, 1, 0, 100].
Sau lệnh ">>> del A[1]", danh sách A hiển thị [2, 10, 1, 0, 100].
Luyện tập
Trả lời câu hỏi Luyện tập trang 114 SGK Tin học 10
1 . Viết lệnh xóa phần tử cuối cùng của danh sách A bằng lệnh del.
Phương pháp giải:
Dựa vào kiến thức đã học để viết lệnh
Lời giải chi tiết :
Lệnh xóa phần tử cuối cùng của danh sách A bằng lệnh del: del A[len(A)-1]
2 . Có thể thêm một phần tử vào đầu danh sách được không? Nếu có thì nêu cách thực hiện.
Phương pháp giải:
Có thể thêm một phần tử vào đầu danh sách được
Lời giải chi tiết :
Có thể thêm một phần tử vào đầu danh sách được
A = [phần tử cần thêm] + A
Vận dụng
Trả lời câu hỏi Vận dụng trang 114 SGK Tin học 10
Cho dãy số A. Viết chương trình tính giá trị và chỉ số của phần tử lớn nhất của A. Tương tự với bài toán tìm phần tử nhỏ nhất.
Phương pháp giải:
Dựa vào kiến thức đã học để viết chương trình
Lời giải chi tiết :
Chương trình tính giá trị và chỉ số của phần tử lớn nhất của A
Tương tự với bài toán tìm phần tử nhỏ nhất