Python cung cấp nhiều cách để so sánh hai danh sách. So sánh là quá trình kiểm tra các mục dữ liệu của một mục dữ liệu khác trong danh sách, xem chúng có giống nhau hay không Show
Các phương pháp so sánh hai danh sách được đưa ra dưới đây
Hàm cmp()Hàm cmp() của Python so sánh hai đối tượng Python và trả về các giá trị nguyên -1, 0, 1 theo phép so sánh Lưu ý - Nó không sử dụng trong Python 3. phiên bản xHàm set() và toán tử ==Hàm set() trong Python thao tác danh sách vào tập hợp mà không cần quan tâm đến thứ tự các phần tử. Ngoài ra, chúng ta sử dụng toán tử bằng (==) để so sánh các phần tử dữ liệu của danh sách. Hãy hiểu ví dụ sau Thí dụ - đầu ra The list1 and list2 are equal Giải trìnhTrong ví dụ trên, chúng tôi đã khai báo hai danh sách được so sánh với nhau. Chúng tôi đã chuyển đổi các danh sách đó thành tập hợp và so sánh từng phần tử với sự trợ giúp của toán tử ==. Tất cả các phần tử đều bằng nhau trong cả hai danh sách, sau đó nếu khối được thực thi và in kết quả Phương thức sort() với toán tử ==Hàm sort() trong Python dùng để sắp xếp danh sách. Các phần tử của cùng một danh sách có cùng vị trí chỉ mục; Lưu ý - Trong phương thức sort(), chúng ta có thể chuyển các mục trong danh sách theo bất kỳ thứ tự nào vì chúng ta đang sắp xếp danh sách trước khi so sánhHãy hiểu ví dụ sau - Thí dụ - đầu ra The list1 and list3 are not the same The list1 and list2 are not the same Bộ sưu tập. hàm truy cập ()Mô-đun bộ sưu tập cung cấp bộ đếm (), so sánh danh sách một cách hiệu quả. Nó lưu trữ dữ liệu ở định dạng từ điển. và đếm tần suất xuất hiện của các mục trong danh sách Lưu ý - Thứ tự của các phần tử trong danh sách không quan trọng trong chức năng nàyThí dụ - đầu ra The lists list1 and list2 are not the same The lists list1 and list3 are the same Giảm () và bản đồ ()Hàm map() chấp nhận một hàm và đối tượng lặp Python (danh sách, bộ dữ liệu, chuỗi, v.v.) làm đối số và trả về một đối tượng bản đồ. Hàm thực hiện cho từng phần tử của danh sách và kết quả là trả về một trình vòng lặp Bên cạnh đó, phương thức reduce() triển khai hàm đã cho cho đối tượng có thể lặp lại theo cách đệ quy Ở đây, chúng ta sẽ sử dụng kết hợp cả hai phương pháp. Hàm map() sẽ triển khai hàm (nó có thể là hàm do người dùng xác định hoặc hàm lambda) cho mọi đối tượng có thể lặp lại và hàm reduce() đảm nhiệm chức năng đó sẽ áp dụng theo cách đệ quy Trong bài viết này, chúng ta sẽ thảo luận về 10 cách khác nhau để so sánh hai danh sách và nhận ra sự khác biệt của chúng. e. các yếu tố có mặt trong một danh sách nhưng không có trong một danh sách khác Giả sử chúng ta có hai danh sách, first_list = [10, 11, 12, 13, 14, 16, 15] sec_list = [10, 11, 12, 18, 19, 16] Bây giờ có thể có một số phần tử có trong danh sách đầu tiên nhưng lại bị thiếu trong danh sách thứ hai. Trong khi đó, cũng có một số yếu tố có mặt trong danh sách thứ hai nhưng thiếu trong danh sách đầu tiên. Chúng tôi muốn so sánh hai danh sách của chúng tôi và nhận được tất cả những khác biệt này. Giống như hai danh sách đã đề cập ở trên, điểm khác biệt là, ______4 Có nhiều cách để so sánh hai danh sách và nhận ra sự khác biệt. Hãy thảo luận từng vấn đề một, Sử dụng set để nhận sự khác biệt giữa hai danh sáchKhi chúng ta tạo một tập hợp từ danh sách thì nó chỉ chứa các phần tử duy nhất của danh sách. Vì vậy, hãy chuyển đổi danh sách của chúng ta thành các tập hợp và sau đó chúng ta có thể trừ các tập hợp này để có được sự khác biệt giữa chúng. e # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences) Đầu ra. ______6 Chúng tôi có sự khác biệt giữa cả hai danh sách tôi. e. các phần tử nằm trong danh sách này nhưng không có trong danh sách khác. Nhưng những gì vừa xảy ra ở đây? . Làm thế nào nó hoạt động? quảng cáo Đầu tiên lấy các phần tử có trong first_list nhưng không có trong sec_list, # Get elements which are present in first_list but not in sec_list diff1 = set(first_list) - set(sec_list) print(diff1) Đầu ra. {13, 14, 15} Sau đó lấy các phần tử có trong sec_list nhưng không có trong first_list, # Get elements which are present in sec_list but not in first_list diff2 = set(sec_list) - set(first_list) print(diff2) Output: ______10 Bây giờ cộng cả hai tập hợp kết quả để có sự khác biệt hoàn toàn giữa hai danh sách, The list1 and list3 are not the same The list1 and list2 are not the same1 Output: {18, 19, 13, 14, 15} Sử dụng bộ. differ() để nhận sự khác biệt giữa hai danh sáchTrong giải pháp trước, thay vì trừ hai tập hợp bằng toán tử –, chúng ta có thể sử dụng hàm differ() của tập hợp để lấy hiệu Vì vậy, hãy chuyển đổi các danh sách của chúng ta thành các tập hợp và sau đó chúng ta có thể trừ các tập hợp này bằng cách sử dụng hàm differ() để có được sự khác biệt trong hai danh sách i. e 18, 19, 13, 14, 150 Đầu ra. ______6 So sánh và nhận sự khác biệt giữa hai danh sách không có bộThay vì chuyển đổi danh sách thành tập hợp và so sánh. Chúng ta có thể lặp lại danh sách đầu tiên và đối với từng phần tử trong danh sách đó, hãy kiểm tra xem danh sách thứ hai có chứa phần tử đó hay không. Nó sẽ cung cấp các phần tử có trong danh sách đầu tiên nhưng bị thiếu trong danh sách thứ hai i. e 18, 19, 13, 14, 152 Đầu ra. ______43 Sau đó, sử dụng logic tương tự theo thứ tự ngược lại i. e. lặp lại danh sách thứ hai và đối với từng phần tử trong danh sách đó, hãy kiểm tra xem danh sách đầu tiên có chứa phần tử đó hay không. Nó sẽ cung cấp các phần tử có trong danh sách thứ hai nhưng bị thiếu trong danh sách đầu tiên tôi. e. ____44 Đầu ra. ______45 Bây giờ hãy kết hợp diff1 và diff2 này để có sự khác biệt hoàn toàn giữa hai danh sách, 18, 19, 13, 14, 156 Output: 18, 19, 13, 14, 157 Sử dụng tính năng Hiểu danh sách để biết sự khác biệt giữa hai danh sáchGiống như giải pháp trước đó, chúng ta có thể lặp lại cả hai danh sách và tìm kiếm các phần tử trong các danh sách khác để nhận được sự khác biệt. Nhưng để lặp lại, chúng tôi sẽ sử dụng khả năng hiểu danh sách Danh sách ra là, 18, 19, 13, 14, 158 Lấy các phần tử có trong danh sách đầu tiên nhưng thiếu trong danh sách thứ hai i. e. ______49 Lấy các phần tử có trong danh sách thứ hai nhưng thiếu trong danh sách thứ nhất i. e. # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences)0 Bây giờ hãy kết hợp diff1 và diff2 này để có sự khác biệt hoàn toàn giữa hai danh sách, 18, 19, 13, 14, 156 Output: ______47 Sử dụng bộ. symmetric_difference() để nhận sự khác biệt giữa hai danh sáchTrong tất cả các giải pháp trước đó, chúng tôi có tất cả sự khác biệt giữa hai danh sách trong hai bước. Nhưng sử dụng symmetric_difference() chúng ta có thể đạt được điều đó chỉ trong một bước # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences)3 symmetric_difference() là một hàm thành viên của tập hợp và chấp nhận một chuỗi khác làm đối số. Nó trả về một tập hợp mới với các phần tử đang gọi đối tượng tập hợp hoặc đối số chuỗi, nhưng không phải trong cả hai. Vì vậy, về cơ bản, nó trả về sự khác biệt giữa cả tập hợp và danh sách. Hãy sử dụng công cụ này để nhận sự khác biệt giữa hai danh sách, # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences)4 Đầu ra. # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences)5 Chúng tôi đã chuyển đổi danh sách đầu tiên của mình thành một tập hợp, sau đó gọi symmetric_difference() trên đối tượng tập hợp đó và chuyển danh sách thứ hai làm đối số. Nó trả về sự khác biệt giữa chúng. Sử dụng công đoàn () và giao lộ () để nhận sự khác biệt giữa hai danh sáchTrước hết, chuyển đổi cả hai danh sách thành bộ. Sau đó lấy hợp của cả hai tập hợp, # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences)6 Đầu ra. ______57 union() trả về một tập hợp mới với tất cả các phần tử riêng biệt từ cả hai tập hợp. Sau đó lấy giao của cả hai tập hợp, # Convert lists to sets first_set = set(first_list) sec_set = set(sec_list) # Get the differences between two sets differences = (first_set - sec_set).union(sec_set - first_set) print('Differences between two lists: ') print(differences)8 Kết quả. ______59 giao() trả về một tập hợp mới với tất cả các phần tử chung của cả hai tập hợp. Bây giờ nếu chúng ta trừ tất cả các phần tử chung khỏi tất cả các phần tử riêng biệt thì chúng ta sẽ nhận được sự khác biệt giữa cả hai phần tử đó, {18, 19, 13, 14, 15}0 Đầu ra. ______55 Vì vậy, đây là cách chúng tôi có thể nhận được sự khác biệt giữa hai danh sách. Sử dụng set & ^ để nhận sự khác biệt giữa hai danh sáchMột giải pháp nhanh chóng khác là, {18, 19, 13, 14, 15}2 Đầu ra. ______55 sử dụng numpy. setdiff1d() để nhận sự khác biệt giữa hai danh sách{18, 19, 13, 14, 15}4 setdiff1d() chấp nhận hai mảng làm đối số và trả về các giá trị duy nhất trong mảng1 không có trong mảng2. Vì vậy, hãy sử dụng điều này để nhận sự khác biệt giữa hai danh sách, {18, 19, 13, 14, 15}5 Đầu ra. {18, 19, 13, 14, 15}6 Chúng tôi đã chuyển đổi danh sách của mình thành ndarrays và chuyển chúng tới setdiff1d() hai lần i. e.
Sau đó, hợp nhất cả hai sự khác biệt để có được tất cả sự khác biệt giữa hai danh sách Vì vậy, đây là những cách khác nhau để so sánh hai danh sách trong python và tìm ra sự khác biệt của chúng Ví dụ đầy đủ như sau, {18, 19, 13, 14, 15}7 Đầu ra. ______68 Hướng dẫn về Pandas -Tìm hiểu Phân tích dữ liệu với Python
Bạn đang muốn tạo dựng sự nghiệp trong Khoa học dữ liệu với Python?Khoa học dữ liệu là tương lai và tương lai là ở đây ngay bây giờ. Các nhà khoa học dữ liệu hiện là những chuyên gia được tìm kiếm nhiều nhất hiện nay. Để trở thành một Nhà khoa học dữ liệu giỏi hoặc để chuyển đổi nghề nghiệp trong Khoa học dữ liệu, người ta phải sở hữu bộ kỹ năng phù hợp. Chúng tôi đã tuyển chọn danh sách Chứng chỉ chuyên nghiệp tốt nhất về Khoa học dữ liệu với Python. Các khóa học này sẽ dạy cho bạn các công cụ lập trình cho Khoa học dữ liệu như Pandas, NumPy, Matplotlib, Seaborn và cách sử dụng các thư viện này để triển khai các mô hình Máy học Kiểm tra Đánh giá chi tiết về Chứng chỉ chuyên nghiệp tốt nhất về Khoa học dữ liệu với PythonHãy nhớ rằng, Khoa học dữ liệu đòi hỏi rất nhiều kiên nhẫn, bền bỉ và thực hành. Vì vậy, hãy bắt đầu học ngay hôm nay Làm cách nào để so sánh 2 danh sách trong Python?Chúng ta có thể kết hợp phương thức sort() của Python với toán tử == để so sánh hai danh sách. Phương thức sort() trong Python được sử dụng để sắp xếp danh sách đầu vào với mục đích nếu hai danh sách đầu vào bằng nhau thì các phần tử sẽ nằm ở cùng vị trí chỉ mục.
Bạn có thể trừ hai danh sách bằng Python không?Sử dụng Numpy để trừ hai danh sách Python
. Phương thức này lấy hai mảng numpy làm đầu vào và cung cấp các phép trừ theo từng phần tử giữa hai danh sách.
Làm cách nào để tìm sự khác biệt tuyệt đối giữa hai danh sách trong Python?Phương pháp 1. Sử dụng “in” để tìm sự khác biệt giữa hai danh sách trong Python . Trong ví dụ này, chúng tôi đang sử dụng vòng lặp và Python trong từ khóa để tìm sự khác biệt giữa hai danh sách trong Python. |