提取每个子列表的第一项

提取每个子列表的第一项

我想知道在列表列表中提取每个子列表的第一项的最佳方法是什么,并将其附加到新列表。所以,如果我有:

lst = [[a,b,c], [1,2,3], [x,y,z]]

我想退出a1x从那些创建一个单独的列表。

我试过了:

lst2.append(x[0] for x in lst)


函数式编程
浏览 683回答 3
3回答

holdtom

使用列表理解:>>> lst = [['a','b','c'], [1,2,3], ['x','y','z']]>>> lst2 = [item[0] for item in lst]>>> lst2['a', 1, 'x']

jeck猫

你可以使用zip:>>> lst=[[1,2,3],[11,12,13],[21,22,23]]>>> zip(*lst)[0](1, 11, 21)或者,Python 3 zip不生成列表:>>> list(zip(*lst))[0](1, 11, 21)要么,>>> next(zip(*lst))(1, 11, 21)或者,(我最喜欢的)使用numpy:>>> import numpy as np>>> a=np.array([[1,2,3],[11,12,13],[21,22,23]])>>> a array([[ 1,  2,  3],        [11, 12, 13],        [21, 22, 23]])>>> a[:,0]array([ 1, 11, 21])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python