Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
List comparison in Python
#1
HI

I have two list . i want to compare with each other with the list index[1][2][3] of each list with other list .If its a match then ignore , if not the return the whole list.

a = [['Eth1/1/13', 'Marketing', 'connected', '10', 'full', 'a-1000'], ['Eth1/1/14', 'NETFLOW02', 'connected', '10', 'full', '100']]

b = [['Eth1/1/13', 'NETFLOW02', 'connected', '15', 'full', '100'], ['Eth1/1/14', 'Marketing', 'connected', '10', 'full', 'a-1000']]
Expected Output :

Diff a:

Eth1/1/14  NETFLOW02   connected    10   full    100

Diff b:

Eth1/1/13  NETFLOW02    connected    15   full    100
My Code :

p = [i for i in a if i not in b]
for item in p: 
        print item[0]
print "\n++++++++++++++++++++++++++++++\n"
q = [i for i in b if i not in a]
    for item in q: 
        print item[0]
Any idea ?
Reply
#2
Quote:p = [i for i in a if i not in b]
Print to see what it is doing
for item in a:
    print(item)
    print(item not in b) 
And you will have to be more specific about what is and is not a match. It looks like a date difference doesn't count but I am not going to guess.
Reply
#3
i did research and manage to match list index[1] .. could not do for list index[2] and index[3]

c = [o for o in a if o[1] not in [n[1] for n in b]]
print c
can we do similar match for o[2] and o[3] .. so that o[1],o[2],o[3] all should be checked in list b ?
Reply
#4
If you aren't going to read what I post, there is no point to posting.
Quote:And you will have to be more specific about what is and is not a match. It looks like a date difference doesn't count but I am not going to guess
Reply
#5
(Sep-26-2018, 09:33 AM)Nirmal Wrote: list index[1][2][3] of each list with other list .If its a match then ignore , if not the return the whole list.
I don't know why you're trying to force a comprehension to do this. There's no need to build a new list if you're just returning the original one.

>>> def all_match(indices=(), *collections):
...   collections = iter(collections)
...   first = next(collections)
...   val = None
...   sub_list = first
...   for index in indices:
...     sub_list = sub_list[index]
...   value = sub_list
...   for items in collections:
...     sub_value = None
...     for index in indices:
...       items = items[index]
...     sub_value = items
...     if sub_value != value:
...       return False
...   return first
...
>>> a = [['Eth1/1/13', 'Marketing', 'connected', '10', 'full', 'a-1000'], ['Eth1/1/14', 'NETFLOW02', 'connected', '10', 'full', '100']]
>>>
... b = [['Eth1/1/13', 'NETFLOW02', 'connected', '15', 'full', '100'], ['Eth1/1/14', 'Marketing', 'connected', '10', 'full', 'a-1000']]
>>> all_match([1, 2, 3], a, b)
[['Eth1/1/13', 'Marketing', 'connected', '10', 'full', 'a-1000'], ['Eth1/1/14', 'NETFLOW02', 'connected', '10', 'full', '100']]
>>> a[1][2][3]
'n'
>>> b[1][2][3]
'n'
>>> a = [[''], ['', '', 'spam']]
>>> a[1][2][3]
'm'
>>> all_match([1, 2, 3], a, b)
False
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Photo String comparison in a csv file in Python Pandas fleafy 2 1,155 Nov-18-2022, 09:38 PM
Last Post: fleafy
  LIST or ARRAY Comparison and change of value nio74maz 0 1,694 Dec-21-2020, 05:52 PM
Last Post: nio74maz
  Python greater than equal to comparison operator Ilangos 4 2,419 Sep-26-2020, 03:53 AM
Last Post: buran
  Comparison Operator "is" idle vs python command spisatus 3 2,773 Oct-29-2019, 10:00 PM
Last Post: DeaD_EyE
  iterate through a list with comparison of expression Alexandro 6 3,413 Jan-31-2019, 05:16 PM
Last Post: Scorpio
  Python 2.7 LooseVersion version comparison unexpectedly fails kwutzke 5 4,130 Nov-27-2018, 10:23 AM
Last Post: kwutzke
  List comparison in Python Nirmal 13 6,457 Aug-09-2018, 04:30 PM
Last Post: Vysero
  rpm version comparison in python asad 3 3,760 Jul-27-2018, 01:00 PM
Last Post: buran

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020