1. Làm thế nào để thêm một phần tử mới vào cuối danh sách trong Python?
A. Sử dụng phương thức `append()`.
B. Sử dụng phương thức `insert()`.
C. Sử dụng phương thức `add()`.
D. Sử dụng phương thức `extend()`.
2. Cho danh sách `numbers = [1, 2, 3, 4]`. Lệnh `numbers.insert(1, 100)` sẽ làm thay đổi danh sách như thế nào?
A. Danh sách trở thành `[1, 100, 2, 3, 4]`
B. Danh sách trở thành `[1, 2, 100, 3, 4]`
C. Danh sách trở thành `[100, 1, 2, 3, 4]`
D. Danh sách trở thành `[1, 2, 3, 4, 100]`
3. Khái niệm slicing (cắt lát) trong danh sách Python được dùng để làm gì?
A. Tạo ra một danh sách mới chứa một phần (một dải) của danh sách gốc.
B. Xóa tất cả các phần tử khỏi danh sách gốc.
C. Thêm một phần tử vào cuối danh sách gốc.
D. Đảo ngược thứ tự các phần tử trong danh sách gốc.
4. Cho danh sách `colors = [red, blue, green, blue]`. Sau khi thực hiện `colors.remove(blue)`, danh sách sẽ là gì?
A. [red, green, blue]
B. [red, blue, green]
C. [red, green]
D. [blue, red, green, blue]
5. Trong Python, kiểu dữ liệu danh sách (list) có những đặc điểm cơ bản nào sau đây?
A. Lưu trữ các phần tử có kiểu dữ liệu khác nhau, có thứ tự và có thể thay đổi.
B. Lưu trữ các phần tử có cùng kiểu dữ liệu, không có thứ tự và không thể thay đổi.
C. Lưu trữ các phần tử có kiểu dữ liệu khác nhau, không có thứ tự và có thể thay đổi.
D. Lưu trữ các phần tử có cùng kiểu dữ liệu, có thứ tự và không thể thay đổi.
6. Cho danh sách `my_list = [10, 20, 30, 40, 50]`. Lệnh nào sau đây sẽ trả về giá trị 30?
A. my_list[3]
B. my_list[2]
C. my_list[4]
D. my_list[1]
7. Khi sao chép một danh sách bằng cách gán trực tiếp (ví dụ: `new_list = old_list`), điều gì sẽ xảy ra?
A. Cả hai biến đều trỏ đến cùng một đối tượng danh sách trong bộ nhớ.
B. Tạo ra một bản sao độc lập của danh sách gốc.
C. Tạo một danh sách mới với các phần tử được sao chép nhưng không liên quan đến danh sách gốc.
D. Xảy ra lỗi vì danh sách không thể được gán trực tiếp.
8. Phương thức nào dùng để sắp xếp các phần tử trong danh sách theo thứ tự tăng dần (mặc định)?
A. `sort()`
B. `order()`
C. `arrange()`
D. `sorted()`
9. Để tạo một danh sách mới chứa các phần tử đã được sắp xếp từ một danh sách gốc mà không làm thay đổi danh sách gốc, bạn nên sử dụng:
A. Hàm `sorted()`
B. Phương thức `sort()`
C. Phương thức `reverse()`
D. Hàm `len()`
10. Cho danh sách `numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`. Biểu thức `numbers[3:7]` sẽ trả về danh sách con nào?
A. [3, 4, 5, 6]
B. [3, 4, 5, 6, 7]
C. [4, 5, 6, 7]
D. [3, 4, 5]
11. Cho danh sách `numbers = [5, 2, 8, 1, 9]`. Biểu thức `sorted(numbers)` sẽ trả về:
A. [1, 2, 5, 8, 9]
B. [9, 8, 5, 2, 1]
C. [5, 2, 8, 1, 9]
D. Một đối tượng có thể lặp nhưng không phải danh sách.
12. Để đảo ngược thứ tự các phần tử trong một danh sách Python, bạn có thể sử dụng phương thức nào?
A. `reverse()`
B. `invert()`
C. `sort(reverse=True)`
D. `flip()`
13. Phát biểu nào sau đây là ĐÚNG về cách truy cập một phần tử trong danh sách Python?
A. Sử dụng chỉ số (index) bắt đầu từ 0 và nằm trong cặp dấu ngoặc vuông [ ].
B. Sử dụng chỉ số (index) bắt đầu từ 1 và nằm trong cặp dấu ngoặc tròn ( ).
C. Sử dụng tên của danh sách và nằm trong cặp dấu ngoặc nhọn { }.
D. Sử dụng từ khóa get kèm theo chỉ số trong cặp dấu ngoặc vuông [ ].
14. Làm thế nào để xóa một phần tử khỏi danh sách dựa trên giá trị của nó?
A. Sử dụng phương thức `remove(value)`.
B. Sử dụng phương thức `delete(value)`.
C. Sử dụng phương thức `pop(value)`.
D. Sử dụng từ khóa `del value`.
15. Cho danh sách `numbers = [1, 2, 3, 4, 5]`. Sau khi thực hiện `numbers.reverse()`, danh sách sẽ là:
A. [5, 4, 3, 2, 1]
B. [1, 2, 3, 4, 5]
C. [2, 3, 4, 5, 1]
D. Lỗi, vì danh sách không có phương thức reverse()
16. Phương thức nào dùng để chèn một phần tử vào một vị trí cụ thể trong danh sách?
A. `insert(index, element)`
B. `append(element)`
C. `add(index, element)`
D. `push(index, element)`
17. Cho danh sách `fruits = [apple, banana, cherry]`. Sau khi thực hiện `fruits.append(orange)`, danh sách sẽ có nội dung là gì?
A. [apple, banana, cherry, orange]
B. [orange, apple, banana, cherry]
C. [apple, banana, orange]
D. [apple, banana, cherry, orange, apple]
18. Để lấy độ dài (số lượng phần tử) của một danh sách trong Python, ta sử dụng hàm nào?
A. `len()`
B. `size()`
C. `count()`
D. `length()`
19. Biểu thức `my_list[::2]` trong Python có ý nghĩa gì?
A. Tạo một danh sách mới chứa các phần tử của `my_list` với bước nhảy là 2 (lấy cách 1 phần tử).
B. Tạo một danh sách mới chứa các phần tử của `my_list` theo thứ tự ngược lại.
C. Tạo một danh sách mới chứa các phần tử của `my_list` từ chỉ số 2 đến cuối.
D. Xóa các phần tử tại các chỉ số chẵn trong `my_list`.
20. Đâu là cách KHÔNG hợp lệ để tạo một danh sách rỗng trong Python?
A. list()
B. []
C. [None]
D. Tất cả các phương án trên đều hợp lệ.
21. Nếu bạn muốn lấy các phần tử từ đầu danh sách đến chỉ số 4 (không bao gồm phần tử ở chỉ số 4), bạn sẽ sử dụng biểu thức slicing nào?
A. my_list[:4]
B. my_list[0:4]
C. my_list[4:]
D. Cả A và B đều đúng
22. Cho danh sách `data = [5, 1, 4, 2, 8]`. Giá trị trả về của `len(data)` là bao nhiêu?
23. Phương thức nào dùng để xóa một phần tử khỏi danh sách dựa trên chỉ số của nó?
A. `pop(index)`
B. `remove(index)`
C. `delete(index)`
D. `del list[index]`
24. Cho danh sách `letters = [a, b, c, d]`. Lệnh `letters.pop(2)` sẽ trả về giá trị nào và làm thay đổi danh sách ra sao?
A. Trả về c, danh sách còn lại là [a, b, d]
B. Trả về b, danh sách còn lại là [a, c, d]
C. Trả về c, danh sách còn lại là [a, b, c]
D. Trả về d, danh sách còn lại là [a, b, c]
25. Cho danh sách `grades = [B, A, C, A]`. Sau khi thực hiện `grades.sort()`, danh sách sẽ là:
A. [A, A, B, C]
B. [C, B, A, A]
C. [A, B, C, A]
D. [A, B, A, C]