Computer >> Máy Tính >  >> Lập trình >> Python

Cách xóa các bản sao khỏi danh sách bằng Python

Bạn có thể xóa các bản sao khỏi Python bằng cách sử dụng 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 bằng Python, có thể có một tình huống mà bạn muốn xóa các bản sao khỏi danh sách. Ví dụ:giả sử bạn là một đầu bếp đang kết hợp 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ỳ trường hợp 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.fromkeys () phương pháp chuyển đổi một danh sách thành một tập hợp. Chúng ta sẽ thảo luận về cách chuyển đổi đầu ra từ hai phương pháp này trở lại 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 phương thức dict.fromkeys ().

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

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 bản sao khỏi danh sách:dict.fromkeys ()

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

Từ điển bằng Python không được 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ẽ loại bỏ mọi giá trị trùng lặp. Đó là nơi fromkeys () phương pháp đi kèm.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia chương trình đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

dict.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, chức năng này 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 một danh sách.

Cú pháp cho fromkeys () như sau:

dictionary_name.fromkeys(keys, value)

fromkeys nhận hai tham số:khóa và giá trị. Tham số khóa là tham số có thể lặp lại, 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 tôi là một đầu bếp đang hợp nhất menu pizza cũ và mới thành một menu lớn. Thực đơn mới bao gồm một số loại pizza mới mà chúng tôi đã làm việc trong nhiều tháng. Tuy nhiên, 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 sao xuất hiện trên menu, vì điều đó sẽ khiến khách hàng nhầm lẫn.

Để xóa bất kỳ bản sao nào có thể tồn tại trong menu mới, chúng tôi có thể sử dụng 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 xóa các phần tử trùng lặp của chúng tôi và trả về:

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

Trên dòng đầu tiên, chúng tôi khai báo một biến Python có tên là new_menu nơi lưu trữ tất cả các loại pizza trong thực đơn mới. Lưu ý rằng danh sách này chứa các giá trị trùng lặp - cả Xúc xích Hawaii xuất hiện hai lần trong danh sách Python.

Chúng tôi sử dụng dict.fromkeys () phương pháp tạo từ điển từ new_menu của chúng tôi Biến đổi. Tiếp theo, chúng tôi sử dụng list () để chuyển đổi dữ liệu của chúng tôi từ từ điển sang mảng hoặc danh sách Python. 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.

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à Xúc xích Hawaii xuất hiện một lần trong danh sách mới của chúng tôi.

Xóa 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 vừa không có thứ tự unindexed . Đặt bộ sưu tập cửa hàng gồm các mặt hàng độc đáo bằng Python. Không giống như danh sách, tập hợp không thể lưu trữ các giá trị trùng lặp.

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

pizzas = ('Margherita', 'Hawaiian', 'Mushroom', 'Meat Feast')

Xóa các bản sao bằng một bộ ví dụ

Hãy lấy ví dụ của chúng tôi ở trên để minh họa cách có thể sử dụng các tập hợp để xóa 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, người 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, chúng tôi muốn loại bỏ chúng trước khi tạo menu cuối cùng. Để xóa các bản sao này bằng cách sử dụng phương pháp tập hợp, chúng tôi có thể sử dụng 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 của chúng tôi, chúng tôi khai báo một danh sách có tên là new_menu nơi lưu trữ tất cả các loại pizza trên thực đơn mới.

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

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



Kết luận

Loại bỏ các mục trùng lặp khỏi danh sách là một hoạt động phổ biến trong Python. Không có phương pháp chính thức nào nên được sử dụng để loại bỏ các bản sao khỏi danh sách. Các phương pháp phổ biến nhất là sử dụng từ điển fromkeys () chức năng 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 tôi đã thảo luận về cách sử dụng từ điển fromkeys () và đặt để loại bỏ các bản sao khỏi danh sách bằng Python.

Để 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.