Khóa học python

Thay đổi phần tử của List trong Python

0 phút đọc

Trong Python, List là một kiểu dữ liệu có thể thay đổi (mutable), nghĩa là các phần tử trong List có thể được thay đổi sau khi List đã được tạo. Điều này làm cho List trở thành một công cụ mạnh mẽ và linh hoạt để làm việc với dữ liệu. Bài viết này sẽ hướng dẫn chi tiết cách thay đổi phần tử của List trong Python, kèm theo các ví dụ minh họa.

Thay đổi phần tử đơn lẻ trong List

Chúng ta có thể thay đổi giá trị của một phần tử trong List bằng cách sử dụng chỉ số của nó. Ví dụ:

mylist = [10, 20, 30, 40, 50, 60]
mylist[0] = 11  # Thay đổi phần tử đầu tiên
mylist[2] = 31  # Thay đổi phần tử thứ ba
mylist[-1] = 61 # Thay đổi phần tử cuối cùng
print(mylist)

Output:

[11, 20, 31, 40, 50, 61]

Thay đổi nhiều phần tử trong List

Chúng ta cũng có thể thay đổi nhiều phần tử trong List cùng một lúc bằng cách sử dụng slicing. Ví dụ:

mylist = [10, 20, 30, 40, 50, 60]
mylist[1:3] = [21, 31]  # Thay đổi phần tử thứ hai và thứ ba
print(mylist)

Output:

[10, 21, 31, 40, 50, 60]

Nếu số lượng phần tử thay thế không bằng số lượng phần tử bị thay thế, List sẽ tự động điều chỉnh kích thước:

mylist = [10, 20, 30, 40, 50, 60]
mylist[1:3] = [21, 31, 41]  # Thêm một phần tử mới
print(mylist)

Output:

[10, 21, 31, 41, 40, 50, 60]

Thay đổi phần tử bằng vòng lặp

Chúng ta có thể sử dụng vòng lặp để thay đổi các phần tử trong List. Ví dụ, để tăng mỗi phần tử trong List lên 2 đơn vị:

mylist = [10, 20, 30, 40, 50, 60]
for i in range(len(mylist)):
    mylist[i] += 2
print(mylist)

Output:

[12, 22, 32, 42, 52, 62]

Thay đổi phần tử bằng List Comprehension

List comprehension là một cách ngắn gọn và hiệu quả để thay đổi các phần tử trong List. Ví dụ:

mylist = [10, 20, 30, 40, 50]
mylist = [x + 2 for x in mylist]
print(mylist)

Output:

[12, 22, 32, 42, 52]

Thay đổi phần tử bằng hàm maplambda

Chúng ta có thể sử dụng hàm map kết hợp với lambda để thay đổi các phần tử trong List. Ví dụ:

mylist = [10, 20, 30, 40, 50]
mylist = list(map(lambda x: x + 2, mylist))
print(mylist)

Output:

[12, 22, 32, 42, 52]

Thay đổi phần tử bằng cách sử dụng hàm enumerate

Hàm enumerate cho phép chúng ta truy cập cả chỉ số và giá trị của các phần tử trong List, giúp việc thay đổi các phần tử trở nên dễ dàng hơn. Ví dụ:

mylist = [10, 20, 30, 40, 50]
for index, value in enumerate(mylist):
    mylist[index] = value + 2
print(mylist)

Output:

[12, 22, 32, 42, 52]

Thay đổi phần tử bằng cách sử dụng hàm replace

Mặc dù Python không có hàm replace trực tiếp cho List, chúng ta có thể tự viết một hàm để thay thế các phần tử trong List. Ví dụ:

def replace_elements(lst, old_value, new_value):
    return [new_value if x == old_value else x for x in lst]

mylist = [10, 20, 30, 20, 50]
mylist = replace_elements(mylist, 20, 25)
print(mylist)

Output:

[10, 25, 30, 25, 50]

Thay đổi phần tử trong List lồng nhau

List trong Python có thể chứa các List khác, và chúng ta cũng có thể thay đổi các phần tử trong các List lồng nhau này. Ví dụ:

mylist = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
mylist[0][1] = 21  # Thay đổi phần tử thứ hai của List con đầu tiên
mylist[2][0] = 71  # Thay đổi phần tử đầu tiên của List con thứ ba
print(mylist)

Output:

[[10, 21, 30], [40, 50, 60], [71, 80, 90]]

Thay đổi phần tử trong List bằng cách sử dụng hàm filter

Hàm filter có thể được sử dụng để thay đổi các phần tử trong List dựa trên một điều kiện nào đó. Ví dụ:

mylist = [10, 20, 30, 40, 50]
mylist = list(filter(lambda x: x != 30, mylist))  # Loại bỏ phần tử có giá trị 30
print(mylist)

Output:

[10, 20, 40, 50]

Thay đổi phần tử trong List bằng cách sử dụng hàm reduce

Hàm reduce từ module functools có thể được sử dụng để thay đổi các phần tử trong List bằng cách áp dụng một hàm tích lũy. Ví dụ:

from functools import reduce

mylist = [10, 20, 30, 40, 50]
sum_list = reduce(lambda x, y: x + y, mylist)  # Tính tổng các phần tử trong List
print(sum_list)

Output:

150

Thay đổi phần tử trong List bằng cách sử dụng hàm zip

Hàm zip có thể được sử dụng để thay đổi các phần tử trong nhiều List cùng một lúc. Ví dụ:

list1 = [10, 20, 30]
list2 = [1, 2, 3]
result = [x + y for x, y in zip(list1, list2)]
print(result)

Output:

[11, 22, 33]

Thay đổi phần tử trong List bằng cách sử dụng hàm itertools

Module itertools cung cấp nhiều công cụ mạnh mẽ để làm việc với List. Ví dụ, chúng ta có thể sử dụng itertools.starmap để thay đổi các phần tử trong List:

import itertools

mylist = [(1, 2), (3, 4), (5, 6)]
result = list(itertools.starmap(lambda x, y: x + y, mylist))
print(result)

Output:

[3, 7, 11]

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách thay đổi phần tử của List trong Python bằng nhiều phương pháp khác nhau, từ việc sử dụng chỉ số, vòng lặp, list comprehension, đến các hàm tích hợp như map, filter, reduce, và itertools. Hy vọng rằng các ví dụ minh họa này sẽ giúp bạn hiểu rõ hơn về cách làm việc với List trong Python và áp dụng chúng vào các bài toán thực tế của mình.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Các thành phần trong Docker bao gồm những thành phần nào?

entry

Có thể đổi tên cơ sở dữ liệu không? Nếu có, bạn sẽ đổi tên cơ sở dữ liệu như thế nào?

entry

Cho biết một số ưu điểm của Linked List?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào

Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely