Xóa trùng lặp trong danh sách Python

Các bài kiểm tra tư cách thành viên. Ví dụ: x in l đánh giá thành True nếu x là thành viên của l, nếu không, nó đánh giá thành False

x not in l trả về phủ định của x in l

Nếu điều kiện được đáp ứng, chúng tôi sử dụng phương pháp list.append[] để thêm danh sách vào danh sách mới

Phương thức thêm một mục vào cuối danh sách

Danh sách mới không chứa bất kỳ danh sách trùng lặp nào

Ngoài ra, bạn có thể sử dụng phương pháp itertools.groupby

Xóa các bản sao khỏi danh sách các danh sách bằng cách sử dụng groupby

Để xóa các bản sao khỏi danh sách các danh sách

  1. Sử dụng phương pháp True0 để sắp xếp danh sách
  2. Sử dụng phương pháp itertools.groupby để nhóm các danh sách lồng nhau
  3. Sử dụng lớp True2 để chuyển đổi kết quả thành một danh sách

Chúng tôi đã sử dụng phương pháp để loại bỏ các bản sao khỏi danh sách danh sách

Lưu ý rằng danh sách phải được sắp xếp trước khi chúng ta sử dụng phương thức groupby vì phương thức này tạo ra một nhóm mới mỗi khi khóa thay đổi

Chúng tôi đã sử dụng biểu thức trình tạo để lặp qua trình vòng lặp và sử dụng dấu gạch dưới để bỏ qua các đối tượng True4

Biểu thức trình tạo được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện

Lưu ý rằng phương pháp này yêu cầu chúng tôi sắp xếp danh sách trước

Phương pháp sắp xếp danh sách tại chỗ và nó chỉ sử dụng _7_______5 phép so sánh giữa các mục

Ngoài ra, bạn có thể chuyển đổi danh sách danh sách thành tập hợp

Xóa các bản sao khỏi danh sách các danh sách bằng cách sử dụng True6

Để xóa các bản sao khỏi danh sách các danh sách

  1. Sử dụng khả năng hiểu danh sách để chuyển đổi từng danh sách lồng nhau thành một bộ
  2. Chuyển đổi danh sách các bộ dữ liệu thành True6 để loại bỏ các bản sao
  3. Sử dụng khả năng hiểu danh sách để chuyển đổi True6 thành danh sách các danh sách

Lưu ý rằng chúng tôi phải chuyển đổi từng danh sách lồng nhau thành True9 trước khi chuyển đổi thành True6

Điều này là cần thiết vì bộ dữ liệu là bất biến và có thể băm, trong khi danh sách có thể thay đổi và không thể băm [không thể là thành viên của True6]

Các đối tượng tập hợp là một tập hợp các phần tử duy nhất không có thứ tự, vì vậy khi chúng tôi chuyển đổi danh sách các bộ dữ liệu thành True6, tất cả các phần tử trùng lặp sẽ tự động bị xóa

Tuy nhiên, một điều cần lưu ý - True6 đối tượng không có thứ tự, vì vậy bạn không đảm bảo rằng thứ tự của các mục trong danh sách sẽ được giữ nguyên

Nếu bạn cần chắc chắn rằng thứ tự của các bộ trong danh sách sẽ được giữ nguyên, hãy sử dụng giải pháp vòng lặp x4

Lớp nhận một đối số tùy chọn có thể lặp lại và trả về một đối tượng True6 mới với các phần tử được lấy từ đối tượng có thể lặp lại

Bạn có thể xóa các bản sao khỏi Python bằng lệnh dict. fromkeys[], tạo từ điển loại bỏ mọi giá trị trùng lặp. Bạn cũng có thể chuyển đổi một danh sách thành một tập hợp. Bạn phải chuyển đổi từ điển hoặc đặt lại thành danh sách để xem danh sách có các từ trùng lặp đã bị xóa

Khi bạn đang làm việc với một danh sách trong Python, có thể xảy ra trường hợp bạn muốn xóa các mục trùng lặp khỏi danh sách. Ví dụ: giả sử bạn là một đầu bếp đang hợp nhất thực đơn cũ và mới cho nhà hàng của bạn. Bạn có thể muốn loại bỏ bất kỳ sự trùng lặp nào xảy ra khi kết hợp hai menu

Hướng dẫn này sẽ bao gồm việc sử dụng dict. phương thức fromkeys[] chuyển đổi danh sách thành tập hợp. Chúng ta sẽ thảo luận về cách chuyển đổi đầu ra từ hai phương thức này thành danh sách để bạn có thể diễn giải dữ liệu của mình dưới dạng danh sách

Python Xóa các bản sao khỏi danh sách

Bạn có thể xóa các bản sao bằng cách sử dụng bộ Python hoặc lệnh dict. phương thức fromkeys[]

mệnh lệnh. Phương thức fromkeys[] chuyển đổi danh sách thành từ điển. Từ điển không thể chứa các giá trị trùng lặp để từ điển chỉ có các giá trị duy nhất được trả về bởi dict. fromkeys[]

Các bộ, giống như từ điển, không được chứa các giá trị trùng lặp. Nếu chúng tôi chuyển đổi một danh sách thành một tập hợp, tất cả các bản sao sẽ bị xóa

Python Xóa các bản sao khỏi danh sách. mệnh lệnh. fromkeys[]

Từ điển Python lưu trữ dữ liệu theo cấu trúc khóa/giá trị. Từ điển ánh xạ các khóa thành các giá trị và tạo một cặp lưu trữ dữ liệu trong Python

Từ điển trong Python không thể bao gồm các khóa trùng lặp. Nếu chúng tôi chuyển đổi danh sách của mình thành từ điển, nó sẽ xóa mọi giá trị trùng lặp. Đó là nơi phương thức fromkeys[] xuất hiện

mệnh lệnh. fromkeys[] Ví dụ

fromkeys[] là một chức năng tích hợp tạo từ điển từ các khóa bạn đã chỉ định. Vì từ điển không thể bao gồm các khóa trùng lặp nên hàm sẽ xóa mọi giá trị trùng lặp khỏi danh sách của chúng tôi. Sau đó, chúng tôi có thể chuyển đổi từ điển của mình trở lại danh sách

» THÊM.   Cách khai báo danh sách trong Python

Cú pháp của phương thức fromkeys[] như sau

dictionary_name.fromkeys[keys, value]

fromkeys nhận hai tham số. khóa và giá trị. Tham số keys là iterable, chỉ định các khóa của từ điển mới mà bạn muốn tạo. Tham số giá trị của chúng tôi là tùy chọn và giữ giá trị cho tất cả các khóa. Chúng tôi không cần tham số này cho ví dụ này, vì vậy chúng tôi sẽ bỏ qua nó

Giả sử chúng ta là một đầu bếp đang hợp nhất thực đơn pizza cũ và mới thành một thực đơn lớn. Thực đơn mới bao gồm một số loại pizza mới mà chúng tôi đã nghiên cứu trong nhiều tháng. Nhưng, chúng tôi muốn cung cấp các loại pizza trên thực đơn cũ. Chúng tôi không muốn các bản trùng lặp xuất hiện trên menu vì điều đó sẽ gây nhầm lẫn cho khách hàng

Để loại bỏ bất kỳ sự trùng lặp nào có thể tồn tại trong menu mới, chúng ta có thể sử dụng đoạn mã sau

new_menu = ['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Hawaiian', 'Bacon', 'Black Olive Special', 'Sausage', 'Sausage']

final_new_menu = list[dict.fromkeys[new_menu]]

print[final_new_menu]

Mã của chúng tôi loại bỏ các phần tử trùng lặp và trả về

['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Bacon', 'Black Olive Special', 'Sausage']

Ở dòng đầu tiên, chúng ta khai báo một biến Python có tên new_menu lưu trữ tất cả các loại pizza trên menu mới. Lưu ý rằng danh sách này chứa các giá trị trùng lặp — cả Sausage và Hawaiian đều xuất hiện hai lần trong danh sách Python

Chúng tôi sử dụng lệnh. fromkeys[] để tạo từ điển từ biến new_menu của chúng ta. Tiếp theo, chúng tôi sử dụng list[] để chuyển đổi dữ liệu của mình từ từ điển sang mảng Python hoặc danh sách. Trên dòng mã cuối cùng, chúng tôi in ra danh sách đã sửa đổi của mình

» THÊM.   Vòng trăn. Hướng dẫn từng bước

Như bạn có thể thấy, chương trình của chúng tôi đã xóa các giá trị trùng lặp khỏi dữ liệu của chúng tôi và Sausage và Hawaiian xuất hiện một lần trong danh sách mới của chúng tôi

Xóa các bản sao khỏi danh sách Python. bộ

Đối tượng tập hợp Python là một cấu trúc dữ liệu không có thứ tự và không được lập chỉ mục. Đặt bộ sưu tập lưu trữ các mục duy nhất trong Python. Không giống như danh sách, bộ không thể lưu trữ các giá trị trùng lặp

Vì vậy, vì các bộ không thể lưu trữ các mục trùng lặp, chúng tôi có thể chuyển đổi danh sách của mình thành một bộ để loại bỏ chúng. Trong Python, bộ là danh sách các mục được phân tách bằng dấu phẩy được đặt trong dấu ngoặc nhọn. Đây là một ví dụ về một bộ trong Python lưu trữ danh sách các loại pizza

pizzas = ['Margherita', 'Hawaiian', 'Mushroom', 'Meat Feast']

Loại bỏ các bản sao bằng cách sử dụng một ví dụ tập hợp

Hãy lấy ví dụ của chúng tôi ở trên để minh họa cách các bộ có thể được sử dụng để loại bỏ các giá trị trùng lặp khỏi danh sách

Giả sử rằng chúng tôi là một đầu bếp pizza muốn hợp nhất cả thực đơn cũ và mới của chúng tôi. Nhưng có thể có các bản sao giữa các menu này mà chúng tôi sẽ muốn xóa trước khi tạo menu cuối cùng của chúng tôi. Để loại bỏ các bản sao này bằng cách sử dụng phương pháp thiết lập, chúng ta có thể sử dụng đoạn mã sau

new_menu = ['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Hawaiian', 'Bacon', 'Black Olive Special', 'Sausage', 'Sausage']

final_new_menu = list[set[new_menu]]

print[final_new_menu]

Đây là danh sách của chúng tôi sau khi loại bỏ các giá trị trùng lặp

['Mushroom', 'Black Olive Special', 'Meat Feast', 'Bacon', 'Margherita', 'Sausage', 'Prosciutto', 'Hawaiian']

Khi bắt đầu chương trình, chúng tôi khai báo một danh sách có tên new_menu lưu trữ tất cả các loại pizza trên menu mới

Sau đó, chúng tôi khai báo một biến có tên là final_new_menu lưu trữ menu đã sửa đổi của chúng tôi. Biến này chuyển đổi biến new_menu thành một tập hợp bằng cách sử dụng set[], sau đó chuyển đổi tập hợp trở lại danh sách bằng cách sử dụng list[]. Quá trình này loại bỏ tất cả các giá trị trùng lặp trong biến new_menu của chúng tôi

» THÊM.   Python Xóa ký tự khỏi chuỗi. Hướng dẫn

Cuối cùng, chương trình của chúng tôi in menu mới ra bàn điều khiển. Tất cả các phần tử duy nhất từ ​​đối tượng danh sách ban đầu xuất hiện. Bây giờ chúng tôi có một danh sách duy nhất



Phần kết luận

Xóa các mục trùng lặp khỏi danh sách là một thao tác phổ biến trong Python. Không có phương pháp chính thức nào nên được sử dụng để xóa các bản sao khỏi danh sách. Cách tiếp cận phổ biến nhất là sử dụng hàm fromkeys[] trong từ điển hoặc chuyển đổi dữ liệu của bạn thành một tập hợp

Trong hướng dẫn này, chúng ta đã thảo luận cách sử dụng hàm fromkeys[] trong từ điển và các bộ để loại bỏ các mục trùng lặp khỏi danh sách trong Python

"Career Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi phù hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của mình trong cuộc sống. "

Venus, Kỹ sư phần mềm tại Rockbot

Find Your Bootcamp Match

Để tìm hiểu thêm về lập trình Python, hãy đọc hướng dẫn Cách học Python của chúng tôi



Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK

Chủ Đề