Giải Tin học 10 – Bài 22. Kiểu dữ liệu danh sách – KNTT
1. Kiểu dữ liệu danh sách
Câu 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)]
Câu 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
Hướng dẫn giải:
Câu 1:
a) 1
b) ‘One’
c) False
d) Không tồn tại
Câu 2:
a) Ghép phần tử 10 vào sau danh sách A
b) Xóa phần tử thứ nhất của danh sách A
c) Ghép phần tử 100 vào trước danh sách A
d) Tính tích của phần tử thứ hai của danh sách A với 25.
2. Duyệt các phần tử của danh sách
Câu 1. Giải thích các câu lệnh ở mỗi câu sau thực hiện công việc gì?
a)
>>> S = 0
>>> for i in range(len(A)):
if A[i] > 0:
S = S + A[i]
>>> print (S)
b)
>>> C = 0
>>> for i in range (len(A)):
if A[i] > 0:
C = C + 1
>>> print (C)
Câu 2. Cho dãy số nguyên A, viết chương trình in ra các số chẵn của A.
Hướng dẫn giải:
Câu 1: Chương trình và giải thích từng câu lệnh
#Khởi tạo S bằng 0
S = 0
#Cho i chạy từ 0 tới len(A) trừ 1
for i in range(len(A)):
#Nếu A[i] lớn hơn 0
if A[i]>0:
#Cộng dồn vào S
S = S + A[i]
#In kết quả S là tổng các số dương trong dãy A ra màn hình
print(S)
Câu 2: Chương trình và giải thích từng câu lệnh
#Khởi tạo C bằng 0
C = 0
#Cho i chạy từ 0 tới len(A) trừ 1
for i in range(len(A)):
#Nếu A[i] lớn hơn 0
if A[i]>0:
#Tăng biến đếm C 1 đơn vị
C = C + 1
#In kết quả S là tổng các số dương trong dãy A ra màn hình
print(C)
3. Thêm phần tử vào danh sách
Câu 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?
Câu 2. Danh sách A sẽ như thế nào sau các lệnh sau?
>>> A = [2, 4, 10, 1, 0]
>>> A.append(100)
>>> del A[1]
Hướng dẫn giải:
Câu 1: 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 sẽ tăng lên 1 đơn vị.
Câu 2: Danh sách A sau các lệnh trên sẽ là: [2, 10, 1, 0, 100]
Luyện tập
Câu 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.
Câu 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.
Hướng dẫn giải:
Câu 1: Xóa phần tử cuối cùng của danh sách A:
>>> del A[len(A)-1]
Câu 2: Có thể thêm một phần tử vào đầu danh sách A bằng cách:
>>> A = [phần tử cần thêm] + A
Vận dụng
Cho dãy số A. Viết chương trình tìm 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.
Hướng dẫn giải:
– Chương trình tìm giá trị và chỉ số phần tử lớn nhất:
A = [1, 5, 20, 10, 6]
max = A[0]; x = 0
for i in range(len(A)):
if max < A[i]:
max = A[i]
x = i
print("Giá trị lớn nhất là",max,"chỉ số",x)
– Chương trình tìm giá trị và chỉ số phần tử nhỏ nhất:
A = [1, 5, 20, 10, 6]
max = A[0]; x = 0
for i in range(len(A)):
if max > A[i]:
max = A[i]
x = i
print("Giá trị bé nhất là",max,"chỉ số",x)