Danh sách (list) trong Python

LÝ THUYẾT

Danh sách (list) là một trong những loại dữ liệu phổ biến nhất trong Python (giống như mảng trong C++), được sử dụng để lưu trữ một danh sách các đối tượng. Danh sách được định nghĩa bằng cách sử dụng dấu ngoặc vuông [] và các phần tử của danh sách được phân tách bằng dấu phẩy.

Ví dụ:

# Tạo một danh sách các số nguyên
my_list = [1, 2, 3, 4, 5]

# Tạo một danh sách các chuỗi
my_strings = ["apple", "banana", "orange"]

# Tạo một danh sách các đối tượng khác nhau
my_mixed_list = [1, "hello", True, 3.14]

Để truy cập phần tử của danh sách, chúng ta sử dụng chỉ mục (index) của phần tử đó. Chỉ mục bắt đầu từ 0. Ví dụ:

# Truy cập phần tử đầu tiên của danh sách
print(my_list[0])

# Truy cập phần tử thứ hai của danh sách chuỗi
print(my_strings[1])

Chúng ta cũng có thể sử dụng các phương thức của danh sách để thực hiện các thao tác như thêm, xóa, sắp xếp và đảo ngược. Ví dụ:

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

# Xóa phần tử đầu tiên của danh sách
del my_strings[0]

# Sắp xếp danh sách theo thứ tự tăng dần
my_list.sort()

# Đảo ngược thứ tự của các phần tử trong danh sách
my_strings.reverse()

Danh sách là một loại dữ liệu mạnh mẽ và linh hoạt trong Python, cho phép chúng ta thực hiện nhiều thao tác khác nhau trên các tập hợp phần tử.

BÀI TẬP

Các bài tập dưới đây sẽ giúp bạn làm quen với các thao tác cơ bản trên danh sách, cũng như rèn luyện kỹ năng lập trình Python.

Bài tập 1. Tổng các phần từ trong danh sách

Viết chương trình Python để tính tổng các phần tử trong một danh sách.

my_list = [1, 2, 3, 4, 5]
sum = 0

for i in my_list:
    sum += i

print("Tổng các phần tử trong danh sách là:", sum)

Bài tập 2. Giá trị lớn nhất, nhỏ nhất

Viết chương trình Python để tìm giá trị lớn nhất và nhỏ nhất trong một danh sách.

my_list = [1, 5, 2, 8, 3]
max_value = max(my_list)
min_value = min(my_list)

print("Giá trị lớn nhất trong danh sách là:", max_value)
print("Giá trị nhỏ nhất trong danh sách là:", min_value)

Bài tập 3. Số lần xuất hiện của một phần tử

Viết chương trình Python để tìm số lần xuất hiện của một phần tử trong một danh sách.

my_list = [1, 2, 3, 2, 4, 2, 5]
count = my_list.count(2)

print("Số lần xuất hiện của phần tử 2 trong danh sách là:", count)

Bài tập 4. Đảo ngược thứ tự danh sách

Viết chương trình Python để đảo ngược thứ tự các phần tử trong một danh sách

my_list = [1, 2, 3, 4, 5]
my_list.reverse()

print("Danh sách sau khi đảo ngược là:", my_list)

Bài tập 5. Sao chép danh sách

Viết chương trình Python để sao chép một danh sách sang một danh sách khác.

my_list = [1, 2, 3, 4, 5]
new_list = my_list

print("Danh sách ban đầu:", my_list)
print("Danh sách mới:", new_list)

Bài tập 6. Lọc phần tử là số chẵn

Viết chương trình Python để lọc ra các phần tử là số chẵn trong một danh sách.

Để lọc ra các phần tử là số chẵn trong một danh sách, bạn có thể sử dụng một vòng lặp và kiểm tra điều kiện của từng phần tử bằng toán tử modulo (%) để xác định xem nó có phải số chẵn hay không.

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = []

for i in my_list:
    if i % 2 == 0:
        even_numbers.append(i)

print("Các số chẵn trong danh sách là:", even_numbers)

Trong ví dụ trên, chúng ta khởi tạo danh sách ban đầu (my_list) và danh sách rỗng (even_numbers) để lưu trữ các số chẵn. Tiếp theo, chúng ta duyệt qua từng phần tử trong danh sách ban đầu và kiểm tra xem nó có phải là số chẵn bằng cách sử dụng toán tử modulo với số 2. Nếu phần tử đó là số chẵn, chúng ta thêm nó vào danh sách số chẵn (even_numbers). Cuối cùng, chúng ta in danh sách số chẵn.

Bài tập 7. Phần tử duy nhất

Viết chương trình Python để tìm các phần tử duy nhất trong một danh sách.

Để tìm các phần tử duy nhất trong một danh sách, bạn có thể sử dụng phương thức set() để chuyển đổi danh sách sang một tập hợp (set) và sau đó chuyển đổi trở lại danh sách. Một tập hợp sẽ chỉ chứa các phần tử duy nhất, do đó việc chuyển đổi đó sẽ loại bỏ các phần tử trùng lặp trong danh sách ban đầu.

my_list = [1, 2, 3, 2, 4, 5, 3, 6, 7, 7, 8, 9]

unique_elements = list(set(my_list))

print("Các phần tử duy nhất trong danh sách là:", unique_elements)

Bài tập 8. Tạo danh sách mới từ 2 danh sách

Viết chương trình Python để tạo ra một danh sách mới từ hai danh sách đã có, lấy lần lượt từng phần tử của hai danh sách và xen kẽ chúng với nhau.

Để tạo ra một danh sách mới từ hai danh sách đã có, lấy lần lượt từng phần tử của hai danh sách và xen kẽ chúng với nhau, bạn có thể sử dụng vòng lặp for và phương thức zip().

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

merged_list = []

for x, y in zip(list1, list2):
    merged_list.append(x)
    merged_list.append(y)

print("Danh sách mới sau khi xen kẽ các phần tử là:", merged_list)

Bài tập 9. Liệt kê các số nguyên tố

Viết chương trình Python để tìm các số nguyên tố trong một danh sách.

def is_prime(num):
    if num > 1:
        for i in range(2, num):
            if num % i == 0:
                return False
        return True
    else:
        return False

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

prime_list = []

for num in my_list:
    if is_prime(num):
        prime_list.append(num)

print("Các số nguyên tố trong danh sách là:", prime_list)

Bài tập 10. Danh sách tăng dần

Viết chương trình Python để kiểm tra xem một danh sách có phải là một danh sách tăng dần hay không.

def is_sorted(lst):
    for i in range(len(lst) - 1):
        if lst[i] > lst[i+1]:
            return False
    return True

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

if is_sorted(my_list):
    print("Danh sách đã được sắp xếp tăng dần.")
else:
    print("Danh sách không được sắp xếp tăng dần.")

Trong ví dụ trên, chúng ta định nghĩa một hàm is_sorted() để kiểm tra xem danh sách đã cho có phải là danh sách tăng dần hay không. Trong vòng lặp for, chúng ta so sánh từng cặp phần tử liên tiếp trong danh sách và nếu phần tử sau nhỏ hơn hoặc bằng phần tử trước, chúng ta trả về False để cho biết danh sách không được sắp xếp tăng dần. Nếu vòng lặp kết thúc mà không có lỗi nào được tìm thấy, chúng ta trả về True để cho biết danh sách được sắp xếp tăng dần. Cuối cùng, chúng ta sử dụng hàm is_sorted() để kiểm tra danh sách đã cho và in ra thông báo tương ứng.

Trả lời

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 *