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

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

Tiny.D

6.3962 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.0761 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

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

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.

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:


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 các sản phẩm Cartesian từ 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 thế nào để bạn tìm thấy các mục phổ biến trong hai danh sách trong Python?

Phương pháp 2: Sử dụng thuộc tính Giao lộ của Set Chuyển đổi danh sách thành được đặt bằng cách chuyển đổi. 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ộ.Using Set's intersection property Convert the list to set by conversion. Use the intersection function to check if both sets have any elements in common. 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 kiểm tra xem một phần tử bị thiếu trong danh sách Python?

Chúng ta có thể thực hiện nhiệm vụ tìm các phần tử bị thiếu bằng cách sử dụng hàm phạm vi để nhận phần tử tối đa và sau đó chèn các phần tử nếu có bỏ lỡ.Vấn đề này cũng có thể được thực hiện bằng cách sử dụng các thuộc tính của sự khác biệt của tập hợp và sau đó nhận được các yếu tố bị thiếu trong một phạm vi.using the range function to get the maximum element fill and then insert the elements if there is a miss. This problem can also be performed using the properties of difference of set and then getting the elements that are missing in a range.

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

Cách tiếp cận đơn giản vì vậy tổng các phần tử n, đó là tổng số các số từ 1 đến n có thể được tính bằng cách sử dụng công thức n * [n + 1] / 2. Bây giờ hãy tìm tổng số của tất cả các phần tử trong mảng và trừ nó từTổng số của n số tự nhiên đầu tiên, giá trị thu được sẽ là giá trị của phần tử bị thiếu.find the summation of all elements in the array and subtract it from the summation of first N natural numbers, the value obtained will be the value of the missing element.

Bài Viết Liên Quan

Chủ Đề