在Python中获取数组中每行的第一个元素?

c00*_*ter 12 python tuples

假设我有一系列元组s,其形式为:

s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
Run Code Online (Sandbox Code Playgroud)

我想返回另一个元组,t,每行包含第一个元素:

t = (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

哪个是最有效的方法呢?我当然可以迭代s,但有没有更明智的方式呢?

Ign*_*ams 23

没有.

t = tuple(x[0] for x in s)
Run Code Online (Sandbox Code Playgroud)


HS.*_*HS. 5

Ignacio给出的列表理解方法是最干净的.

只是为了踢,你也可以这样做:

zip(*s)[0]
Run Code Online (Sandbox Code Playgroud)

*s扩展s为参数列表.所以它相当于

zip( (1, 23, 34),(2, 34, 44), (3, 444, 234))
Run Code Online (Sandbox Code Playgroud)

zip返回 n元组,其中每个元组包含nth每个列表中的项.

  • 实际上,这是一个生成器表达式,而不是列表理解. (2认同)