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