Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从长度为2的元组列表中列出第二个元素,而不使用循环:Python_Python - Fatal编程技术网

从长度为2的元组列表中列出第二个元素,而不使用循环:Python

从长度为2的元组列表中列出第二个元素,而不使用循环:Python,python,Python,我想为以下问题编写一个简洁而优雅的代码: 假设我有一个元组列表: [(x1,y1), (x2,y2), ....., (xn,yn)]. 我想在不使用循环的情况下创建一个列表[y1,y2,…,yn] 感谢您的帮助。您可以这样做: >>> x = [(1,2),(3,4),(5,6)] >>> x2 = [k[1] for k in x] >>> x2 [2, 4, 6] 在内部执行循环,但您不必键入单词for或while。这就是您要寻找的

我想为以下问题编写一个简洁而优雅的代码:

假设我有一个元组列表:

[(x1,y1), (x2,y2), ....., (xn,yn)].
我想在不使用循环的情况下创建一个列表[y1,y2,…,yn]

感谢您的帮助。

您可以这样做:

>>> x = [(1,2),(3,4),(5,6)]
>>> x2 = [k[1] for k in x]
>>> x2
[2, 4, 6]
在内部执行循环,但您不必键入单词for或while。这就是您要寻找的吗?

您可以使用zip将序列从N个大小为2的元组压缩到2个大小为N的元组,然后将除第二个结果之外的所有结果切掉:

seq = [("z", "a"), ("y", "b"), ("x", "c")]
print zip(*seq)[1]
结果:

('a', 'b', 'c')
array([2,4,6])

mtrw在标准Python中有正确的想法。然而,如果你想直接跳到numpy,我强烈推荐它。它允许所有类型的索引:

import numpy as np
x = np.array([(1,2),(3,4),(4,5)])

x[:,1]
结果:

('a', 'b', 'c')
array([2,4,6])
编辑: 除了这个简单的索引之外,您还可以像任何列表一样循环数组,并且具有所有相同的属性。
编辑2:vanilla->standard

任何能够实现这一点的东西都会在某个地方循环,无论是在python代码中还是在本机代码中。这应该是正确的答案谢谢。这是一个优雅的回答。