Cách xóa phần tử trùng lặp khỏi Python list
3 phút đọc14/09/2025
Về tác giả
I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information.
@#@
Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.
Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn
{"success":true,"head":"<title>Cách xóa phần tử trùng lặp khỏi Python list - CyStack Tutorial</title>\n<meta name=\"description\" content=\"Python list có thể chứa các phần tử trùng lặp. Hãy cùng xem các ví dụ về cách xóa các phần tử trùng lặp theo những cách khác nhau.\"/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"/>\n<link rel=\"canonical\" href=\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"og:title\" content=\"Cách xóa phần tử trùng lặp khỏi Python list - CyStack Tutorial\" />\n<meta property=\"og:description\" content=\"Python list có thể chứa các phần tử trùng lặp. Hãy cùng xem các ví dụ về cách xóa các phần tử trùng lặp theo những cách khác nhau.\" />\n<meta property=\"og:url\" content=\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/\" />\n<meta property=\"og:site_name\" content=\"CyStack Tutorial\" />\n<meta property=\"article:tag\" content=\"vi\" />\n<meta property=\"article:section\" content=\"Python\" />\n<meta property=\"og:updated_time\" content=\"2026-08-03T18:18:06+07:00\" />\n<meta property=\"og:image\" content=\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\" />\n<meta property=\"og:image:secure_url\" content=\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\" />\n<meta property=\"og:image:width\" content=\"1200\" />\n<meta property=\"og:image:height\" content=\"630\" />\n<meta property=\"og:image:alt\" content=\"xóa các phần tử trùng lặp khỏi Python list\" />\n<meta property=\"og:image:type\" content=\"image/jpeg\" />\n<meta property=\"article:published_time\" content=\"2025-09-14T22:15:48+07:00\" />\n<meta property=\"article:modified_time\" content=\"2026-08-03T18:18:06+07:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta name=\"twitter:title\" content=\"Cách xóa phần tử trùng lặp khỏi Python list - CyStack Tutorial\" />\n<meta name=\"twitter:description\" content=\"Python list có thể chứa các phần tử trùng lặp. Hãy cùng xem các ví dụ về cách xóa các phần tử trùng lặp theo những cách khác nhau.\" />\n<meta name=\"twitter:image\" content=\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\" />\n<meta name=\"twitter:label1\" content=\"Written by\" />\n<meta name=\"twitter:data1\" content=\"Chris Pham\" />\n<meta name=\"twitter:label2\" content=\"Time to read\" />\n<meta name=\"twitter:data2\" content=\"2 minutes\" />\n<script type=\"application/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https://blog.cystack.org/tutorial/#person\",\"name\":\"CyStack Tutorial\"},{\"@type\":\"WebSite\",\"@id\":\"https://blog.cystack.org/tutorial/#website\",\"url\":\"https://blog.cystack.org/tutorial\",\"name\":\"CyStack Tutorial\",\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\",\"url\":\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"x\\u00f3a c\\u00e1c ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p kh\\u1ecfi Python list\",\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":\"2\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/category/python/\",\"name\":\"Python\"}},{\"@type\":\"ListItem\",\"position\":\"3\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/\",\"name\":\"C\\u00e1ch x\\u00f3a ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p kh\\u1ecfi Python list\"}}]},{\"@type\":\"WebPage\",\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/#webpage\",\"url\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/\",\"name\":\"C\\u00e1ch x\\u00f3a ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p kh\\u1ecfi Python list - CyStack Tutorial\",\"datePublished\":\"2025-09-14T22:15:48+07:00\",\"dateModified\":\"2026-08-03T18:18:06+07:00\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\"},\"inLanguage\":\"en-US\",\"breadcrumb\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/#breadcrumb\"}},{\"@type\":\"Person\",\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\",\"url\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"url\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"caption\":\"Chris Pham\",\"inLanguage\":\"en-US\"}},{\"@type\":\"BlogPosting\",\"headline\":\"C\\u00e1ch x\\u00f3a ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p kh\\u1ecfi Python list - CyStack Tutorial\",\"keywords\":\"Python list\",\"datePublished\":\"2025-09-14T22:15:48+07:00\",\"dateModified\":\"2026-08-03T18:18:06+07:00\",\"articleSection\":\"Python\",\"author\":{\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\"},\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"description\":\"Python list c\\u00f3 th\\u1ec3 ch\\u1ee9a c\\u00e1c ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p. H\\u00e3y c\\u00f9ng xem c\\u00e1c v\\u00ed d\\u1ee5 v\\u1ec1 c\\u00e1ch x\\u00f3a c\\u00e1c ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p theo nh\\u1eefng c\\u00e1ch kh\\u00e1c nhau.\",\"name\":\"C\\u00e1ch x\\u00f3a ph\\u1ea7n t\\u1eed tr\\u00f9ng l\\u1eb7p kh\\u1ecfi Python list - CyStack Tutorial\",\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/#richSnippet\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/#webpage\"},\"image\":{\"@id\":\"https://s2.cystack.net/tutorial/14221412/xoa-phan-tu-trung-lap-python-list.jpg\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/09/14/xoa-phan-tu-trung-lap-khoi-python-list/#webpage\"}}]}</script>\n"}

Có nhiều cách để xóa phần tử trùng lặp khỏi Python List.
- Sử dụng một Temporary List và lặp (Looping)
- Sử dụng phương thức dựng sẵn
set()
- Sử dụng các khóa (Keys) của Dictionary
- Sử dụng hàm
count() của List
- List Comprehension
Xóa các phần tử trùng lặp khỏi Python List
Python list có thể chứa các phần tử trùng lặp. Hãy cùng xem các ví dụ về cách xóa các phần tử trùng lặp theo những cách khác nhau.
Sử dụng Temporary List
Đây là cách thô sơ để xóa các phần tử trùng lặp khỏi một list. Chúng ta sẽ tạo một temporary list (list tạm thời) và chỉ thêm các phần tử vào đó nếu nó chưa tồn tại.
ints_list = [1, 2, 3, 4, 3, 2]
temp = []
for x in ints_list:
if x not in temp:
temp.append(x)
ints_list = temp
print(f'Updated List after removing duplicates = {temp}')
Output: Updated List after removing duplicates = [1, 2, 3, 4]
Sử dụng hàm set()
Python set không chứa các phần tử trùng lặp. Chúng ta có thể sử dụng hàm dựng sẵn set() để chuyển đổi list thành một set, sau đó sử dụng hàm list() để chuyển đổi nó trở lại thành list.
ints_list = [1, 2, 3, 4, 3, 2]
ints_list1 = list(set(ints_list))
print(ints_list1) # [1, 2, 3, 4]
Sử dụng các phần tử List làm Dictionary Keys
Chúng ta biết rằng các khóa của dictionary là duy nhất. Lớp dict có hàm fromkeys() chấp nhận một iterable để tạo dictionary với các khóa từ iterable.
ints_list = [1, 2, 3, 4, 3, 2]
ints_list2 = list(dict.fromkeys(ints_list))
print(ints_list2) # [1, 2, 3, 4]
Sử dụng hàm count() của List – Không được khuyến khích
Phương thức count() của list trả về số lần xuất hiện của giá trị. Chúng ta có thể sử dụng nó với phương thức remove() để loại bỏ các phần tử trùng lặp khỏi list.
ints_list = [1, 2, 3, 4, 3, 2]
for x in ints_list:
if ints_list.count(x) > 1:
ints_list.remove(x)
print(ints_list) # [1, 2, 3, 4]
LƯU Ý: Như đã chỉ ra trong bình luận dưới đây, việc sử dụng hàm count() không được khuyến khích khi xóa phần tử từ cùng một iterator vì nó có thể dẫn đến kết quả không mong muốn. Ví dụ:
values = [87, 94, 45, 94, 94, 41, 65, 94, 41, 99, 94, 94, 94]
for x in values:
if values.count(x) > 1:
values.remove(x)
print(values) # [87, 45, 65, 41, 99, 94, 94] - 94 is still present twice
List Comprehension
Chúng ta có thể tạo một list từ một iterable bằng cách sử dụng List Comprehension. Kỹ thuật này giống như việc sử dụng temporary list và for loop để xóa các phần tử trùng lặp. Tuy nhiên, nó giúp giảm số dòng code.
int_list = [1, 2, 3, 4, 3, 2]
temp = []
[temp.append(x) for x in ints_list if x not in temp]
print(temp) # [1, 2, 3, 4]
Cách tốt nhất để xóa các phần tử trùng lặp khỏi một List
Nếu bạn không muốn có các phần tử trùng lặp, bạn nên sử dụng Set. Nhưng nếu bạn phải xóa các giá trị trùng lặp từ một list, thì tôi sẽ ưu tiên sử dụng hàm count() vì nó không tạo ra một temporary set hoặc list object khác. Do đó, nó hiệu quả hơn về mặt bộ nhớ (memory efficient).