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)

Xem thêm Bài 23. Một số lệnh làm việc với dữ liệu danh sách

Trả lời

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 *