0

Hello new here in stackoverflow, also I am new with the programation in Python and still learning.

I want to know why I am getting a Syntax error in the second for loop, I am trying to compare two arrays of the same lenght, when ax > bx A recive 1 point, when ax < bx B recive 1 point and where ax == bx nobody get points.

def solve(a0, a1, a2, b0, b1, b2):
  A = 0
  B = 0
  a = [a0 , a1 ,a2]
  b = [b0, b1, b2]
  for x in a and for y in b:
    if x > y:
        pointA + 1
    if x==y:
        pass
    else:
        pointB + 1
  result = [pointA, pointB]
  return result


a0, a1, a2 = raw_input().strip().split(' ')
a0, a1, a2 = [int(a0), int(a1), int(a2)]
b0, b1, b2 = raw_input().strip().split(' ')
b0, b1, b2 = [int(b0), int(b1), int(b2)]
result = solve(a0, a1, a2, b0, b1, b2)
print " ".join(map(str, result))

then with some Investigation I tried:

from itertools import product
import sys


def solve(a0, a1, a2, b0, b1, b2):
  A = 0
  B = 0
  a = [a0 , a1 ,a2]
  b = [b0, b1, b2]
  A = sum(1 if x>y else 0 for x, y in product(a, b))
  B = sum(1 if x<y else 0 for x, y in product(a, b))
  result = [A, B]
  return result

a0, a1, a2 = raw_input().strip().split(' ')
a0, a1, a2 = [int(a0), int(a1), int(a2)]
b0, b1, b2 = raw_input().strip().split(' ')
b0, b1, b2 = [int(b0), int(b1), int(b2)]
result = solve(a0, a1, a2, b0, b1, b2)
print " ".join(map(str, result))

but when the Input is:

1 1 1
0 0 0

I got:

9 0

Can someone explain what I am doing wrong and why? Thank you in advance.

Regards, R

1 Answer 1

1

and expects boolean values not expressions, so this: for x in a and for y in b: will never work.

You could use zip():

1 a
2 b
3 c
>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> for x, y in zip(a, b):
...   print('{} {}'.format(x, y))
... 
1 a
2 b
3 c

And please correct your indentations.

Sign up to request clarification or add additional context in comments.

2 Comments

I made the corrections in the post and I used zip and now my code is working really good! Thank you :)
Glad I could help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.