[英]Python: How can I obtain something in a list of list?
目前,我有以下列表:
>>> a = list()
>>> b = [1, 2, 3]
>>> c = [4,5,6]
>>> d = [7, 8]
>>> a.append(b)
>>> a.append(c)
>>> a.append(d)
>>> del b, c, d
>>> print a
[[1, 2, 3], [4, 5, 6], [7, 8]]
>>> zip(*a)[0]
(1, 4)
zip(*a)
就像一个转置函数。
>>> zip(*a)
[(1, 4), (2, 5), (3, 6)]
[0]
索引第一个元素。
>>> zip(*a)[0]
(1, 4)
第二个问题是棘手- zip
不会做的伎俩。 相反,您需要一个列表理解。
>>> [i for l in a for i in l[1:]]
[2, 3, 5, 6, 8]
或者,如果您不需要扁平化的列表,则只需:
>>> [l[1:] for l in a]
[[2, 3], [5, 6], [8]]
这应该可以解决问题:
[lst[0] for lst in a]
遍历a,并为每个元素(列表)收集第一个值。
有很多方法可以做到这一点。 这将是一个:
>>> print [x[0] for x in a]
[1,4]
或将打印放入for循环中:
>>> for x in a: print x[0],
1 4
如果只需要前两个子列表的第一个元素,则是最基本的方法:
>>> print a[0][0], a[1][0]
1 4
我会选择niklasB。回答zip(b,c)[0]
,但是,为了给您更大的灵活性,如果您不知道列表中子列表的数量,也可以尝试:
[el[0] for el in a]
并为您提供a的子列表中的所有第一项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.