Tin học 10 – Bài 22. Kiểu dữ liệu danh sách

1. Kiểu dữ liệu danh sách

Kiểu dữ liệu danh sách (list) trong Python dùng để lưu trữ nhiều giá trị

Cú pháp khởi tạo:

Python
<tên list> = [<v1>, <v2>, ..., <vn>]
  • Các phần tử có thể có kiểu dữ liệu khác nhau.
  • Truy cập phần tử qua chỉ số, bắt đầu từ 0 đến độ dài danh sách - 1.

Ví dụ:

Python
A = [1, 2, 3, 4, 5]
print(A[0])    # In ra 1

A[1] = "One"  # Thay đổi giá trị phần tử

del A[4]      # Xóa phần tử

Chú ý:

  • Tạo danh sách rỗng: a = []
  • Ghép danh sách: [1, 2] + [3, 4, 5, 6]

2. Duyệt qua các phần tử của danh sách

Sử dụng lệnh for kết hợp với range() để duyệt danh sách

Python
A = [1,2,3,4,5]
for i in range(len(A)):
    print(A[i], end=" ")

Câu hỏi 1. Giải thích các lệnh ở mỗi câu sau thực hiện công việc gì?

a).

Python
S = 0
for i in range(len(A)):
    S = S + A[i]
print(S)

b).

Python
C = 0
for i in range(len(A)):
    if A[i] > 0:
        C = C + 1
print(C)

Trả lời:
a) Tính tổng các phần tử trong danh sách A
b) Đếm số các số dương trong danh sách A

Câu hỏi 2. Cho dãy các số nguyên A, viết chương trình in ra các số chẵn của A.

Python
A = [1, 5, 7, 4, 18, 20]    # Tự cho 1 danh sách demo
for i in range(len(A)):
    if A[i] % 2 == 0:
        print(A[i])

3. Thêm phần tử vào danh sách

Sử dụng phương thức append() để thêm phần tử vào cuối danh sách

Cú pháp: <danh sách>.append(<phần tử>)

Python
A = [1, 2]
A.append(10)
print(A)  # In ra [1, 2, 10]
Câu hỏi 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?

Độ dài danh sách A sẽ tăng lên một đơn vị.


Thực hành

Nhiệm vụ 1: Nhập số n từ bàn phím, sau đó nhập danh sách n tên các bạn lớp em và in ra danh sách các tên đó, mỗi tên trên một dòng.

Python
dsLop = []
n = int(input("Nhập số học sinh trong lớp: "))
for i in range(n):
    name = input("Nhập họ tên học sinh thứ " + str(i+1) + ": ")
    dsLop.append(name)
print("Danh sách học sinh đã nhập:")
for i in range(len(dsLop)):
    print(dsLop[i])

Nhiệm vụ 2: Nhập một dãy số từ bàn phím. Tính tổng, trung bình của dãy và in dãy số trên một hàng ngang.

Python
A = []
T = 0
n = int(input("Nhập số tự nhiên n: "))
for i in range(n):
    num = int(input("Nhập số thứ " + str(i+1) + ": "))
    A.append(num)
    T = T + num
print("Dãy số đã nhập:")
for i in range(n):
    print(A[i], end = " ")
print()
print("Tổng:", T)
print("Trung bình:", T/n)

Luyện tập

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.

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.

Có thể thực hiện lệnh sau để bổ sung phần tử x vào đầu của danh sách A: A = [x] + A


Câu hỏi trắc nghiệm dạng D1 và D2 Tin học 10 bài 22: Kiểu dữ liệu danh sách

Thời gian làm bài: 30 phút
Đáp án chỉ hiển thị sau khi hoàn thành bài làm
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Phương án nào sau đây mô tả đúng về kiểu dữ liệu danh sách (list) trong Python?

NB

”Phương

” c=”list = {}” d=”list = “”” correct=”b”]

NB

”Phương

” b=”A[1]” c=”A[-1]” d=”A.first()” correct=”a”]

NB

”Phương


print(len(A))” a=”4″ b=”5″ c=”6″ d=”[1][2]” correct=”b”]

NB

Phương án nào sau đây chỉ ra cách thêm phần tử 10 vào cuối danh sách A trong Python?

NB

”Phương


del A[2]
print(A)” a=”[1, 2, 4, 5]” b=”[1, 2, 3, 4]” c=”[1, 2]” d=”[3, 4, 5]” correct=”a”]

NB

”Phương


for i in range(len(A)):
    if A[i] % 2 == 0:
        print(A[i], end=" ")” a=”1 3 5″ b=”2 4″ c=”1 2 3 4 5″ d=”Không in ra gì” correct=”b”]

NB

”Phương

” c=”A.remove(A[-1])” d=”A.pop() hoặc del A[-1]” correct=”d”]

NB

”Phương


B = [4, 5, 6]
print(A + B)” a=”[1, 2, 3, 4, 5, 6]” b=”[4, 5, 6, 1, 2, 3]” c=”[1, 2, 3], [4, 5, 6]” d=”Error” correct=”a”]

NB

”Phương


S = 0
for i in range(len(A)):
    if A[i] % 2 != 0:
        S += A[i]
print(S)” a=”6″ b=”9″ c=”15″ d=”5″ correct=”b”]

NB

”Phương


A[1] = "Two"
print(A)” a=”[1, 2, 3, 4, 5]” b=”[1, “Two”, 3, 4, 5]” c=”[“One”, “Two”, “Three”, “Four”, “Five”]” d=”Error” correct=”b”]

NB

”Phương


B = A
B[0] = 10
print(A)” a=”[1, 2, 3, 4, 5]” b=”[10, 2, 3, 4, 5]” c=”[1, 2, 3, 4, 5]” d=”Error” correct=”b”]

NB

”Phương


print(A[-2])” a=”1″ b=”4″ c=”5″ d=”Error” correct=”b”]

NB

”Phương


B = [x*2 for x in A if x % 2 == 0]
print(B)” a=”[2, 4]” b=”[4, 8]” c=”[2, 4, 6, 8, 10]” d=”[1, 2, 3, 4, 5]” correct=”a”]

NB

Phương án nào sau đây chỉ ra cách kiểm tra xem phần tử 3 có trong danh sách A hay không?

NB

”Phương


print(A[1:4])” a=”[1, 2, 3]” b=”[2, 3, 4]” c=”[2, 3]” d=”[1, 2, 3, 4]” correct=”b”]

NB

”Phương


A.reverse()
print(A)” a=”[1, 2, 3, 4, 5]” b=”[5, 4, 3, 2, 1]” c=”[1, 2, 3, 4, 5]” d=”Error” correct=”b”]

NB

Phương án nào sau đây chỉ ra cách tìm giá trị lớn nhất trong danh sách A?

”Cho

NB

NB

TH

VD


B = A
C = A.copy()
A[0] = 10
B[1] = 20
C[2] = 30
Các phát biểu:” a=”Sau khi thực hiện, A và B đều có giá trị” a_correct=”true” b=”Sau khi thực hiện, C có giá trị [1][2]” b_correct=”true” c=”Thay đổi giá trị của A không ảnh hưởng đến C” c_correct=”true” d=”Nếu thêm lệnh C = A sau khi thực hiện các lệnh trên, C sẽ có giá trị” d_correct=”true”]

”Xét

NB

NB

TH

VD


B = [x for x in A if x % 2 != 0]
C = [x**2 for x in A]
D = [x for x in A if x > 3]
Các phát biểu:” a=”B là danh sách chứa các số lẻ từ A” a_correct=”true” b=”C là danh sách chứa bình phương của các phần tử trong A” b_correct=”true” c=”Độ dài của D sẽ là 3″ c_correct=”false” d=”Nếu thêm lệnh E = [x for x in A if x < 6], E sẽ giống hệt A” d_correct=”true”]

Bảng xếp hạng

Hạng Họ tên Điểm số Thời gian
1
10C3 HÀ HỒNG NGỌC NGUYỄN THỊ KIM PHỤNG 1 lần thi
94/100
15 phút 54 giây
2
LÊ MINH KHANG 10C3 1 lần thi
88/100
19 phút 33 giây
3
PHẠM THÀNH LỢI 10C2 1 lần thi
82/100
2 phút 1 giây
4
10c2- Trần Gia Minh 1 lần thi
82/100
9 phút 36 giây
5
Dương Gia Minh và Như Ý 10c3 2 lần thi
80/100
2 phút 43 giây
6
10C3 LẠI BÁ ÂN-VÕ ĐỨC BẰNG 1 lần thi
78/100
4 phút 0 giây
7
10c3-Nguyen Duy Phong 1 lần thi
77/100
17 phút 14 giây
8
10C2 - HUỲNH THỊ CẨM TÚ - LÊ NHƯ HUỲNH 1 lần thi
75/100
2 phút 58 giây
9
LOI 1 lần thi
70/100
4 phút 59 giây
10
10c3-Nguyễn Thị Diễm Thy | Lệ Thị Bảo Châu 1 lần thi
68/100
14 phút 45 giây
11
HUỲNH THIỆN NHÂN , NGUYỄN QUỲNH NHƯ Ý 10C3 1 lần thi
68/100
17 phút 13 giây
12
10c2 mc nc 1 lần thi
67/100
1 phút 50 giây
13
10c3 văn tình , tấn đạt 1 lần thi
67/100
12 phút 57 giây
14
10C3 - Lê Như Quân 1 lần thi
67/100
17 phút 40 giây
15
10C3-Nguyen Trung Hieu 3 lần thi
64/100
2 phút 12 giây
16
10C2 - Phạm Minh Quang 1 lần thi
64/100
16 phút 33 giây
17
10c3 Vinh Ngà 1 lần thi
63/100
13 phút 50 giây
18
Nguyễn Hữu Trí Trần Quang 10c1 1 lần thi
62/100
6 phút 46 giây
19
10C3- Nguyễn Thị Minh Thư 2 lần thi
61/100
12 phút 20 giây
20
10c3 - Trần Minh Đăng 1 lần thi
61/100
16 phút 33 giây
21
Phạm Trần Hoàng Khang 10c2 1 lần thi
59/100
13 phút 35 giây
22
10c3-Hồ thị cẩm vân - phạm nguyễn thiên kim 1 lần thi
59/100
4 phút 38 giây
23
10C3 - Huỳnh Thanh Trà Lê Hùng Đạt 1 lần thi
58/100
17 phút 35 giây
24
10c2-Liễu, Linh 1 lần thi
57/100
6 phút 48 giây
25
10c3 - Phan Trần Gia Phú 1 lần thi
56/100
14 phút 24 giây
26
HUU THANH LOI 10C3 1 lần thi
55/100
2 phút 0 giây
27
10c3 - Lê Thị Ngọc Phụng 1 lần thi
52/100
17 phút 46 giây
28
10C2- TRẦN THỊ BẢO TRÂN 1 lần thi
51/100
9 phút 12 giây
29
10c1 võ thanh sơn 1 lần thi
49/100
9 phút 15 giây
30
minh khang va thanh nhân 1 lần thi
49/100
9 phút 21 giây
31
KHUU THNH LOI 1 lần thi
49/100
2 phút 18 giây
32
10c3-Phạm Thị Mỹ Quyên 1 lần thi
49/100
15 phút 36 giây
33
10c3- nguyễn thị minh thư 2 lần thi
49/100
3 phút 30 giây
34
10c2 nguyễn ngọc quyên nguyễn thị bảo ngọc 1 lần thi
48/100
2 phút 54 giây
35
10c3 - Phạm Thị Ngọc Thảo 2 lần thi
48/100
7 phút 47 giây
36
10C3- Diệp Thị Mỹ Duyên 1 lần thi
48/100
13 phút 31 giây
37
10c3-nguyễn thanh phú 1 lần thi
48/100
15 phút 47 giây
38
10c3-nguyễn trung nghị 1 lần thi
48/100
17 phút 27 giây
39
10c2- Lê Thị Kim Ngân 1 lần thi
45/100
8 phút 53 giây
40
thanh phusuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 10C1 1 lần thi
45/100
7 phút 39 giây
41
10C1- NGÔ THỊ DIỄM HẰNG 1 lần thi
45/100
9 phút 39 giây
42
10c3 nguyễn ngọc ái duy 1 lần thi
44/100
7 phút 6 giây
43
10c3 Nguyên Thị Kim Ngân 1 lần thi
44/100
8 phút 16 giây
44
10C3 LẠI BÁ ÂN - VÕ ĐỨC BẰNG 1 lần thi
44/100
9 phút 42 giây
45
10C2 - Lê Thị Như Ý 1 lần thi
43/100
7 phút 50 giây
46
Phạm Trần Hoàng Khang 1 lần thi
42/100
9 phút 25 giây
47
10C1 VAN HAU NGOC HUNG 1 lần thi
42/100
10 phút 59 giây
48
10C2 Lê Anh Thư 1 lần thi
42/100
12 phút 8 giây
49
10c3 - hồng mỹ 1 lần thi
42/100
7 phút 36 giây
50
10C2 Phan Nhựt Cường Đỗ Mai Cường 1 lần thi
41/100
3 phút 44 giây
51
10c1 phan thị cẩm ly đỗ thị tường vy 1 lần thi
40/100
8 phút 18 giây
52
10C1 nguyễn văn bình lê hoàng anh 1 lần thi
40/100
8 phút 51 giây
53
10C1 NGUYỄN HOÀNG KHANG : NGUYỄN LÊ DUY KHANG 1 lần thi
40/100
10 phút 36 giây
54
10c2 - THÀNH ĐẠI, MINH QUÍ 1 lần thi
40/100
6 phút 13 giây
55
10c2 - Đặng Gia Hân 1 lần thi
40/100
10 phút 14 giây
56
10C2-PHẠM THÀNH LỢI 1 lần thi
40/100
10 phút 43 giây
57
Nguyen THI kIEU OANH 10C2 1 lần thi
40/100
11 phút 11 giây
58
10c3 Phạm Tân Pin Pin 1 lần thi
39/100
10 phút 5 giây

Để 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 *