Em hãy chọn phát biểu đúng khi nói về dữ liệu kiểu danh sách list trong Python

Em hãy chọn phát biểu đúng khi nói về dữ liệu kiểu danh sách list trong Python
Lập trình Python

– Mảng là tập hợp các phần tử cùng một kiểu dữ liệu duy nhất như: mảng số nguyên, mảng số thực, mảng xâu,… Nhưng trong Python không có kiểu dữ liệu mảng mà sử dụng kiểu danh sách (list).

– Không giống như mảng, danh sách có thể chứa các phần tử khác kiểu nhau.

– Chỉ số của mảng bắt đầu từ 0 đến số phần tử – 1

2. Thao tác với dữ liệu kiểu list

a. Khởi tạo list

a.1. Dạng liệt kê: = [, ,…,]

Ví dụ:

s1 = “” #Tạo xâu rỗng s1 s2 = “Viet Nam” #Tạo xâu s2 có s2[0] = “V”, s2[1] = “i”, …., s2[7] = “m” #Duyệt qua từng phần tử của xâu: s = “Ha Noi Viet Nam” for i in s: print(i,end=“ “) #Xuất ra màn hình dòng chữ: H a N o i V i e t N a m

Lưu ý:

– Hàm len() trả về số phần tử của mảng  len(a) = 4, len(b) = 0, len(c) = 4

– Phép toán:

+ Nối mảng: +   d = a + c thì mảng d gồm 8 phần tử

+ Nhân bản phần tử:  *   e = a * 3 thì mảng e gồm 12 phần tử

a.2. Dạng mô tả (list comprehension): [ for  in ]

Lưu ý: ở đây có thể là list, range hoặc str

Ví dụ:

#1 a = [2, 3, 5, 7] #Tạo mảng a gồm 4 phần tử và a[0] = 2, a[1] = 3, a[2] = 5, a[3] = 7 b = [x**2 for x in a] #Tạo mảng b gồm 4 phần tử, b[0] = 4, b[1] = 9, b[2] = 25, b[3] = 49 #2 s = “2 3 5 8 10” c = [int(x) for x in s.split()] #Tạo mảng c gồm 5 phần tử, có giá trị là 2, 3, 5, 8, 10 #3 d = [x for x in range(0,11,2)] #Tạo mảng d gồm 6 phần tử, có giá trị lần lượt là 0, 2, 4, 6, 8, 10 #4 s = "12345" e = [int(x) for x in s] #Tạo mảng gồm 5 phần tử, có giá trị lần lượt là 1, 2, 3, 4, 5 #5 s = “2 3 5 8 10” d = list(map(int,s.split())) #Tạo mảng d gồm 5 phần tử, có giá trị là 2, 3, 5, 8, 10

Ngoài ra, ta có phương pháp sinh có điều kiện như sau:

  [ for  in if <điều kiện>]

Ví dụ:

#1 d = [x for x in range(0,11) if x%2==0] #Tạo mảng d gồm 6 phần tử, có giá trị lần lượt là 0, 2, 4, 6, 8, 10 #2 s = ‘Xin chao 123’ a = [int(ch) for ch in s if ord(ch)>=48 and ord(ch)<=57 #Tạo mảng số nguyên a gồm 3 phần tử, các phần tử là các số trong xâu s

b. Nhập dữ liệu từ bàn phím vào list

a.1. Dạng nhập từng phần tử (thường biết trước số phần tử của mảng)

Ví dụ: Nhập dữ liệu vào mảng số nguyên a gồm có n phần tử từ bàn phím

n = int(input(“Mời nhập số phần tử: “)); #Nhập số phần tử của mảng a = [] #Khởi tạo mảng rỗng for i in range(0,n): print(“Phần tử thứ”,i+1,”là:”,end=“ “) #Xuất dòng thông báo temp = int(input()) #Lấy giá trị nhập vào và chuyển sang kiểu số nguyên a.append(temp) #Thêm phần tử vào vị trí cuối cùng của mảng

a.2. Dạng nhập toàn bộ phần tử của mảng (thường chưa biết trước số phần tử của mảng)

Ví dụ: Nhập dữ liệu vào mảng số nguyên a từ bàn phím (các số cách nhau dấu cách)

a = list(map(int,input(“Mời nhập các phần tử của mảng: ”).split()))

c. Một số phương thức của list

HàmÝ nghĩa dụ
appenda.append(<đối tượng>)Bổ sung <đối tượng> vào cuối của một danh sách
cleara.clear()Xóa dữ liệu, đưa danh sách a thành rỗng
copya.copy()Trả về một danh sách có giá trị giống a (một bản sao của a)
extenda.extend(<đối tượng>)Mở rộng <đối tượng> vào cuối danh sách a
indexa.index()Trả về chỉ số index đầu tiên trong danh sách của
inserta.insert(,<đối tượng>)Chèn <đối tượng> vào danh sách ở trước vị trí index
popa.pop()Xóa và lấy ra phần tử cuối cùng của danh sách a (ngăn xếp)
removea.remove()Xóa đi phần tử đầu tiên có giá trị bằng
reversea.reverse()Trả lại danh sách có các phần tử ngược với phần tử a
sorta.sort([reverse=True/False])Sắp xếp lại danh sách a theo thứ tự tăng dần giá trị của các phần tử
Một số phương thức của list

3. Tìm hiểu kiểu dữ liệu list of list

– Mảng nhiều chiều là mảng mà mỗi phần tử của nó có kiểu mảng

– Cách tham chiếu đến từng phần tử của mảng 2 chiều (list of list) như sau:

a[i][j] à Tham chiếu phần tử có chỉ số i và j

  Trong đó i là chỉ số phần tử của mảng a và j là chỉ số phần tử của mảng a[i]

4. Thao tác với dữ liệu kiểu list of list

– Duyệt từng phần tử của list of list:

Ví dụ: Duyệt qua từng phần tử của mảng a gồm n phần tử, mỗi phần tử là mảng gồm m phần tử

for i in range(0,n): for j in range(0,m):

5. Phần bài tập về kiểu dữ liệu danh sách (list)

Câu 1: Viết chương trình nhập vào dãy các số nguyên bất kỳ, xuất ra màn hình tổng của các số trong dãy đó?

Câu 2: Viết chương trình nhập vào dãy các số bất kỳ, tìm số lớn nhất trong dãy số đó và xuất ra màn hình?

Câu 3: Viết chương trình nhập vào mảng gồm n số nguyên dương, hãy xuất ra màn hình tổng của các số lẻ trong mảng đó, với n>2

Câu 4: Viết chương trình nhập vào số nguyên dương n, xuất ra màn hình các số nguyên tố nhỏ hơn n, với n>2

Câu 5: Viết chương trình nhập vào bàn phím số nguyên dương n, xuất ra màn hình dãy số Fibonaxi. Biết rằng dãy Fibonaxi có dạng như sau: F0 = 1, F1 = 1, Fn = Fn-1 + Fn-2 với n>1

Câu 6: Viết chương trình dung phương pháp list comprehension để tạo các list sau:

a) Dãy các số là bội của 3 và nhỏ hơn 100

b) Dãy 10 số chính phương đầu tiên

Câu 7: Viết chương trình nhập vào dãy các số nguyên bất kỳ, kiểm tra và xuất ra màn hình xem dãy số đó có tạo thành cấp số cộng hay không?

Bài 8: Viết chương trình nhập vào danh sách gồm n người, mỗi người sẽ có các thông tin như: họ và tên, tuổi, giới tính và quê quán. Sau đó xuất ra màn hình thông tin của từng người đã nhập.

Câu 9: Viết chương trình nhập vào 2 ma trận vuông 5×5 và xuất ra màn hình ma trận tổng của hai ma trận đã nhập?

Xem tiếp Bài 7 – Kiểu dữ liệu từ điển (dict) trong ngôn ngữ lập trình Python

Có 4 loại cấu trúc dữ liệu trong ngôn ngữ lập trình Python:

  • List là dãy mà có khả năng lưu giữ các kiểu dữ liệu khác nhau và có thể thay đổi. Cho phép thành viên trùng lặp.
  • Tuple là một dãy giống List nhưng các đối tượng không thay đổi. Cho phép thành viên trùng lặp.
  • Set là một dãy không theo thứ tự và không được lập chỉ mục. Không chứa thành viên trùng lặp.
  • Dictionary là một dãy không theo thứ tự, có thể thay đổi và được lập chỉ mục.Không chứa thành viên trùng lặp.

Việc lựa chọn một kiểu dữ liệu là vô cùng hữu ích nếu chúng ta nắm được các đặc điểm của nó.

Khi chọn đúng kiểu dữ liệu phù hợp cho các loại dữ liệu cụ thể sẽ giúp gia tăng hiệu quả và khả năng bảo mật.

DANH SÁCH

List (Danh sách) là dãy mà có khả năng lưu giữ các kiểu dữ liệu khác nhau và có thể thay đổi.

Trong Python, danh sách được viết trong dấu ngoặc vuông [ ]

Ví dụ

Tạo một list:

thislist = ["apple", "banana", "grapes"] print(thislist)

Ví dụ

Thay đổi một phần tử:

thislist = ["apple", "banana", "cherry"] thislist[1] = "grapes" print(thislist)

KHỞI TẠO DANH SÁCH

Dùng hàm list() để khởi tạo danh sách.

Để thêm một mục vào danh sách, ta sử dụng phương thức append().

Để loại bỏ một mục cụ thể, sử dụng phương thức remove().

Hàm len() trả về độ dài của danh sách.

Ví dụ

Sử dụng hàm list() để khởi tạo một danh sách:

thislist = list(("apple", "banana", "grapes")) # Khi đó thislist sẽ lưu danh sách này print(thislist)

Ví dụ

Sử dụng phương thức append() để nối thêm một mục:

thislist = list(("apple", "banana", "grapes")) thislist.append("cherry") print(thislist)

Ví dụ

Sử dụng phương thức remove() để xóa một mục:

thislist = list(("apple", "banana", "grapes")) thislist.remove("banana") print(thislist)

Ví dụ

Phương thức len() trả về số lượng các thành phần trong một danh sách:

thislist = list(("apple", "banana", "grapes")) print(len(thislist))

CÁC PHƯƠNG THỨC CHO LIST

Python có tích hợp sẵn các phương thức mà bạn có thể sử dụng trong danh sách.

append(): Thêm một phần tử vào cuối danh sách.

fruits = ['apple', 'banana', 'cherry', 'orange'] fruits.append("orange")

clear(): Xóa tất cả các phần tử trong danh sách.

fruits = ['apple', 'banana', 'cherry', 'orange'] fruits.clear()

copy(): Trả về một bản sao của danh sách.

fruits = ['apple', 'banana', 'cherry', 'orange'] x = fruits.copy()

count(): Trả về số lượng các phần tử trong danh sách.

fruits = ['apple', 'banana', 'cherry'] x = fruits.count("cherry")

extend(): Thêm một hoặc nhiều thành phần vào cuối danh sách hiện hành.

fruits = ['apple', 'banana', 'cherry'] cars = ['Ford', 'BMW', 'Volvo'] fruits.extend(cars)

index(): Trả về vị trí xuất hiện đầu tiên của một thành phần cho trước trong danh sách.

fruits = ['apple', 'banana', 'cherry'] x = fruits.index("cherry")

insert(): Thêm một đối tượng vào một vị trí trong danh sách.

fruits = ['apple', 'banana', 'cherry'] fruits.insert(1, "orange")

pop(): Xóa một đối tượng tại một vị trí trong danh sách.

fruits = ['apple', 'banana', 'cherry'] fruits.pop(1)

remove(): Xóa một thành phần tương ứng với một thành phần cho trước trong danh sách.

fruits = ['apple', 'banana', 'cherry'] fruits.remove("banana")

reverse(): Đảo ngược vị trí các thành phần trong danh sách

fruits = ['apple', 'banana', 'cherry'] fruits.reverse()

sort(): Sắp xếp danh sách. Với điều kiện trong ngoặc là true thì sắp tăng, ngược lại là false thì sắp giảm. (Nếu để trống sẽ mặc định sắp tăng)

cars = ['Ford', 'BMW', 'Volvo'] cars.sort()