Iterating two arrays at once

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • mathieu

    Iterating two arrays at once

    Hi there,

    just trying to figure out how to iterate over two array without
    computing the len of the array:

    A = [1,2,3]
    B = [4,5,6]
    for a,b in A,B: # does not work !
    print a,b

    It should print:

    1,4
    2,5
    3,6

    Thanks !
  • Bruno Desthuilliers

    #2
    Re: Iterating two arrays at once

    mathieu a écrit :
    Hi there,
    >
    just trying to figure out how to iterate over two array without
    computing the len of the array:
    >
    A = [1,2,3]
    B = [4,5,6]
    for a,b in A,B: # does not work !
    print a,b
    >
    It should print:
    >
    1,4
    2,5
    3,6
    for a, b in zip(A, B):
    print a, b

    or, using itertools (which might be a good idea if your lists are a bit
    huge):

    from itertools import izip
    for a, b in izip(A, B):
    print a, b


    Comment

    • Matthias =?iso-8859-1?q?Bl=E4sing?=

      #3
      Re: Iterating two arrays at once

      Am Fri, 29 Aug 2008 03:35:51 -0700 schrieb mathieu:>
      A = [1,2,3]
      B = [4,5,6]
      for a,b in A,B: # does not work !
      print a,b
      >
      It should print:
      >
      1,4
      2,5
      3,6
      Hey,

      zip is your friend:

      for a,b in zip(A,B):
      print a,b

      does what you want. If you deal with big lists, you can use izip from
      itertools, which returns a generator.

      from itertools import izip
      for a,b in izip(A,B):
      print a,b

      HTH

      Matthias

      Comment

      • mathieu

        #4
        Re: Iterating two arrays at once

        On Aug 29, 12:46 pm, Matthias Bläsing <matthias.blaes ...@rwth-
        aachen.dewrote:
        Am Fri, 29 Aug 2008 03:35:51 -0700 schrieb mathieu:>
        >
        A = [1,2,3]
        B = [4,5,6]
        for a,b in A,B: # does not work !
        print a,b
        >
        It should print:
        >
        1,4
        2,5
        3,6
        >
        Hey,
        >
        zip is your friend:
        >
        for a,b in zip(A,B):
        print a,b
        >
        does what you want. If you deal with big lists, you can use izip from
        itertools, which returns a generator.
        >
        from itertools import izip
        for a,b in izip(A,B):
        print a,b
        Thanks all !

        Comment

        • Bruno Desthuilliers

          #5
          Re: Iterating two arrays at once

          mathieu a écrit :
          (snip solution)
          Thanks all !
          FWIW, this has been discussed here *very* recently (a couple hours ago).
          Look for a thread named "iterating over two arrays in parallel?", and
          pay special attention to Terry Reedy's answer.

          Comment

          Working...