Python Forum
Comparing values in separate lists
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Comparing values in separate lists
#1
I'm having problems with my code, i want to compare 2 values from a list. There are 4 groups (a,b,c,d) where the values can end up in. A if both values are above 5, b and c if one of the two is above 5 and d if both are below 5. The problem is that the first value will compare with all the values from list 2. I also tried to get the values in tuples but it didn't work?
I'll post my code below.

lists:
[12.4, 2.7, 5.1] [10.9, 2.3, 3.7]

I tried it with using a nestled for loop but it uses all the values from list 1 in 2.
my code:
for i in p1stb_list_new:
    for j in p2stb_list_new:
        if i>=5 and j>=5:
            a.extend((i,j))
        elif i<5 and j>=5:
            b.extend((i,j))
        elif i>=5 and j<5:
            c.extend((i,j))
        elif i<5 and j<5:
            d.extend((i,j))
print(a,b,c,d)
output:
[12.4, 10.9, 5.1, 10.9] [2.7, 10.9] [12.4, 2.3, 12.4, 3.7, 5.1, 2.3, 5.1, 3.7] [2.7, 2.3, 2.7, 3.7]

desired output:
[(12.4,10.9)][][(5.1,2.3)][(2.7,3.7)]
Reply
#2
I would suggest to use the zip function in combination with a for loop if you want to compare the first elements, then the second elements, etc.
so instead of you two for loops use:
list_1 = [12.4, 2.7, 5.1]
list_2 = [10.9, 2.3, 3.7]
for element_1, element_2 in zip(list_1, list_2):
       if element_1>=5 and element_2>=5:
            a.extend((element_1,element_2))
        elif element_1<5 and element_2>=5:
            b.extend((element_1,element_2))
        elif element_1>=5 and element_2<5:
            c.extend((element_1,element_2))
        elif element_1<5 and element_2<5:
            d.extend((element_1,element_2))
print(a, b, c, d)
Reply
#3
If you want to compare items in the same position/offset in each list, then you use the offset to step through. And using i, l, or O as single digit variable names can sometimes look like numbers.
if len(p1stb_list_new) == len(p2stb_list_new):
    for offset in range(len(p1stb_list_new)):
        ## shorter names are easier to key in
        p1=p1stb_list_new[offset]
        p2=p2stb_list_new[offset]
        print(offset, p1, p2)

        if p1>=5 and p2>=5:
            a.extend((p1,p1))
        elif p1<5 and p1>=5:
            b.extend((p1. p2))
        elif p1>=5 and p2<5:
            c.extend((p1, p2))
        elif p1<5 and p2<5:
            d.extend((p1,p2))  
Reply
#4
Thank you sooo much guys! This helped me so much :)
I'm new to programming so sometimes its just not working out :P
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Comparing List values to get indexes Edward_ 7 1,137 Jun-09-2023, 04:57 PM
Last Post: deanhystad
  How to separate the values in an element to add them monty024 4 1,011 Jan-23-2023, 04:28 AM
Last Post: deanhystad
  user input values into list of lists tauros73 3 1,064 Dec-29-2022, 05:54 PM
Last Post: deanhystad
  importing functions from a separate python file in a separate directory Scordomaniac 3 1,365 May-17-2022, 07:49 AM
Last Post: Pedroski55
  comparing 2 lists rwahdan 2 1,607 Jul-18-2021, 06:30 PM
Last Post: DeaD_EyE
  Split dict of lists into smaller dicts of lists. pcs3rd 3 2,362 Sep-19-2020, 09:12 AM
Last Post: ibreeden
  Comparing items from 2 lists of dictionaries illwill 7 2,743 Sep-14-2020, 10:46 PM
Last Post: bowlofred
  Comparing Values/QC Within Two Strings uttadms31 2 1,901 Jul-07-2020, 03:49 PM
Last Post: uttadms31
  Inserting values from multiple lists sqlite azulu 1 2,493 May-24-2020, 08:40 AM
Last Post: ibreeden
  Getting Unique values from LISTS aankrose 2 2,244 Oct-17-2019, 05:33 PM
Last Post: aankrose

Forum Jump:

User Panel Messages

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