Hướng dẫn how do i find missing elements in two lists in python? - làm cách nào để tìm các phần tử bị thiếu trong hai danh sách trong python?

Tôi đã có 2 danh sách (được sắp xếp) tiền tố và muốn so sánh nó bằng Python để tôi có thể xuất ra phần tử nào trong danh sách ban đầu bị thiếu và được thêm vào.

Eg.

list1_original = ['1.1.1.1/24','2.2.2.2/24','3.3.3.3/24','4.4.4.4/24']
list2 = ['3.3.3.3/24','4.4.4.4/24','5.5.5.5/24','6.6.6.6/24']

Tôi muốn so sánh 2 danh sách và xuất phần bổ sung/xóa trong list1_original. I E:

1.1.1.1/24, 2.2.2.2/24 = missing
5.5.5.5/24, 6.6.6.6/24 = added

Hướng dẫn how do i find missing elements in two lists in python? - làm cách nào để tìm các phần tử bị thiếu trong hai danh sách trong python?

Tiny.D

6.4062 Huy hiệu vàng14 Huy hiệu bạc20 Huy hiệu Đồng2 gold badges14 silver badges20 bronze badges

Khi được hỏi ngày 9 tháng 5 năm 2017 lúc 1:55May 9, 2017 at 1:55

2

Nếu không có bản sao trong danh sách nhất định, bạn có thể sử dụng các bộ và toán tử "-" của chúng:

list1 = ['1.1.1.1/24', '2.2.2.2/24', '3.3.3.3/24', '4.4.4.4/24']
list2 = ['3.3.3.3/24', '4.4.4.4/24', '5.5.5.5/24', '6.6.6.6/24']

set1 = set(list1)
set2 = set(list2)

missing = list(sorted(set1 - set2))
added = list(sorted(set2 - set1))

print('missing:', missing)
print('added:', added)

Bản in này

missing: ['1.1.1.1/24', '2.2.2.2/24']
added: ['5.5.5.5/24', '6.6.6.6/24']

Đã trả lời ngày 9 tháng 5 năm 2017 lúc 2:13May 9, 2017 at 2:13

AtstngattstngATSTNG

3713 Huy hiệu bạc5 Huy hiệu Đồng3 silver badges5 bronze badges

0

Với

1.1.1.1/24, 2.2.2.2/24 = missing
5.5.5.5/24, 6.6.6.6/24 = added
1, bạn có thể so sánh danh sách:

missing = set(list1_original).difference(list2)
added = set(list2).difference(list1_original)

Hãy nhớ rằng đầu ra là một bộ. Để đúc đầu ra vào danh sách, bạn có thể sử dụng

1.1.1.1/24, 2.2.2.2/24 = missing
5.5.5.5/24, 6.6.6.6/24 = added
2.

Đã trả lời ngày 1 tháng 3 lúc 21:13Mar 1 at 21:13

Rachwarachwarachwa

1.0861 Huy hiệu vàng4 Huy hiệu bạc15 Huy hiệu đồng1 gold badge4 silver badges15 bronze badges

Bạn có thể nhận được kết quả bằng cách sử dụng một vòng lặp và một số câu lệnh có điều kiện.

list1 = ['1.1.1.1/24', '2.2.2.2/24', '3.3.3.3/24', '4.4.4.4/24']
list2 = ['3.3.3.3/24', '4.4.4.4/24', '5.5.5.5/24', '6.6.6.6/24']

for i in list1:
    if i in list2:
        print("added",i)
    else:
        print("missing",i)

missing 1.1.1.1/24
missing 2.2.2.2/24
added 3.3.3.3/24
added 4.4.4.4/24

Điều tương tự cũng có thể được đóng khung như vậy,

[print("added",i) if i in list2 else print("missing",i) for i in list1] 

Đã trả lời ngày 9 tháng 5 năm 2017 lúc 2:31May 9, 2017 at 2:31

Hướng dẫn how do i find missing elements in two lists in python? - làm cách nào để tìm các phần tử bị thiếu trong hai danh sách trong python?

Mr.PacmanMr.PacmanMr.Pacman

3302 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges

Điều này sẽ hoạt động bất kể các giá trị trùng lặp mà không được sắp xếp ().

>>> def finder(arr1,arr2):
    for i in range(len(arr1)):
        if arr1[i] not in arr2:
            print("missing",arr1[i])
    for j in range(len(arr2)):
        if arr2[j] not in arr1:
            print("added",arr2[j])

Đã trả lời ngày 16 tháng 4 năm 2019 lúc 23:08Apr 16, 2019 at 23:08

Hướng dẫn how do i find missing elements in two lists in python? - làm cách nào để tìm các phần tử bị thiếu trong hai danh sách trong python?

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:50:49 (UTC/GMT +8 giờ)

Danh sách Python: Bài tập - 42 với giải pháp

Viết một chương trình Python để tìm các giá trị thiếu và bổ sung trong hai danh sách.

Hướng dẫn how do i find missing elements in two lists in python? - làm cách nào để tìm các phần tử bị thiếu trong hai danh sách trong python?

Giải pháp mẫu :- :-

Mã Python:

list1 = ['a','b','c','d','e','f']
list2 = ['d','e','f','g','h']
print('Missing values in second list: ', ','.join(set(list1).difference(list2)))
print('Additional values in second list: ', ','.join(set(list2).difference(list1)))

Đầu ra mẫu:

Missing values in second list:  b,c,a                                                                         
Additional values in second list:  g,h 

Flowchart:

Hướng dẫn how do i find missing elements in two lists in python? - làm cách nào để tìm các phần tử bị thiếu trong hai danh sách trong python?

Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Trình chỉnh sửa mã Python:

Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn (và nhận xét) thông qua Disqus.

Trước đây: Viết chương trình Python để tạo nhiều danh sách.next: Viết chương trình Python để chia danh sách thành các biến khác nhau. Write a Python program to create multiple lists.
Next: Write a Python program to split a list into different variables.

Python: Lời khuyên trong ngày

Tạo một trình lặp lại tính toán chức năng bằng các đối số thu được từ Itable of Iterables:

1.1.1.1/24, 2.2.2.2/24 = missing
5.5.5.5/24, 6.6.6.6/24 = added
0

Làm cách nào để tìm thấy các giá trị bị thiếu trong danh sách Python?

Algorithm..
Bước 1: Tạo một mảng trống cho các mục bị thiếu ..
Bước 2: Vòng lặp qua các phần tử trong phạm vi của phần tử đầu tiên và cuối cùng của mảng ..
Bước 3: So sánh biến vòng lặp với mảng đã cho nếu giá trị không xuất hiện, hãy nối nó với mảng bị thiếu ..
Lưu ý: Mảng phải được sắp xếp cho việc này để hoạt động. ....
Output:.

Làm thế nào để bạn tìm thấy các mục phổ biến giữa hai danh sách?

Sử dụng chức năng giao nhau để kiểm tra xem cả hai bộ có bất kỳ yếu tố chung nào không.Nếu chúng có nhiều yếu tố chung, thì hãy in giao điểm của cả hai bộ.. If they have many elements in common, then print the intersection of both sets.

Làm thế nào để bạn tìm thấy các giá trị của hai danh sách trong Python?

Chúng ta có thể sử dụng một trong các phương pháp sau để thực hiện so sánh của chúng ta:..
Hàm giảm () và map () ..
Bộ sưu tập.Chức năng của Counter () ..
Hàm python sort () cùng với == toán tử ..
Hàm python set () cùng với == toán tử ..
Chức năng khác biệt () ..

Làm thế nào để bạn so sánh hai danh sách trong Python?

Sắp xếp () và == Toán tử.Danh sách.Phương thức Sắp xếp () Sắp xếp hai danh sách và toán tử == so sánh hai mục danh sách từng mục, điều đó có nghĩa là chúng có các mục dữ liệu bằng nhau ở các vị trí bằng nhau.Điều này kiểm tra xem danh sách có chứa các giá trị mục dữ liệu bằng nhau nhưng nó không tính đến thứ tự của các phần tử trong danh sách.