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:
<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ụ:
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
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).
S = 0
for i in range(len(A)):
S = S + A[i]
print(S)
b).
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.
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ử>)
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.
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.
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