Loại bỏ trùng lặp trong mảng python

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.   Toán tử Python. Hướng dẫn

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.   %s có nghĩa là gì trong Python?

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 Regex. Giới thiệu về Sử dụng Biểu thức Chính quy

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



Sự 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

Loại bỏ trùng lặp trong mảng python
Loại bỏ trùng lặp trong mảng 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

1 Xếp hạng



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

Điều gì loại bỏ tất cả các giá trị trùng lặp khỏi mảng?

Sử dụng phương thức filter() . Phương thức filter() tạo một mảng mới gồm các phần tử vượt qua điều kiện mà chúng ta cung cấp. Nó sẽ chỉ bao gồm những phần tử mà giá trị true được trả về. Chúng tôi có thể loại bỏ các giá trị trùng lặp khỏi mảng bằng cách điều chỉnh điều kiện của chúng tôi.

Làm cách nào để loại bỏ các bản sao trong mảng giảm?

# Cách xóa các mảng trùng lặp trong ES6 .
Sử dụng bộ. Chuyển đổi Set thành Array bằng Array. từ
2. sử dụng bộ lọc. Chỉ số. lọc. Truy xuất các giá trị trùng lặp
3. sử dụng giảm
Đầu vào của cộng đồng