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

Chưa có kết quả nào.

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