Getting the first elements per row in an array in Python?

前端 未结 3 1858
遇见更好的自我
遇见更好的自我 2020-12-16 17:19

Let\'s say i have an array of Tuples, s, in the form of:

s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))

and i want to return another Tuple,

相关标签:
3条回答
  • 2020-12-16 17:37

    The list comprehension method given by Ignacio is the cleanest.

    Just for kicks, you could also do:

    zip(*s)[0]
    

    *s expands s into a list of arguments. So it is equivalent to

    zip( (1, 23, 34),(2, 34, 44), (3, 444, 234))
    

    And zip returns n tuples where each tuple contains the nth item from each list.

    0 讨论(0)
  • 2020-12-16 17:53

    No.

    t = tuple(x[0] for x in s)
    
    0 讨论(0)
  • 2020-12-16 17:53
    import itertools
    s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
    print(next(itertools.izip(*s)))
    

    itertools.izip returns an iterator. The next function returns the next (and in this case, first) element from the iterator.

    In Python 2.x, zip returns a tuple. izip uses less memory since iterators do not generate their contents until needed.

    In Python 3, zip returns an iterator.

    0 讨论(0)
提交回复
热议问题