为了账号安全,请及时绑定邮箱和手机立即绑定

提取每个子列表的第一项

提取每个子列表的第一项

函数式编程 2019-08-12 18:01:06
提取每个子列表的第一项我想知道在列表列表中提取每个子列表的第一项的最佳方法是什么,并将其附加到新列表。所以,如果我有:lst = [[a,b,c], [1,2,3], [x,y,z]]我想退出a,1并x从那些创建一个单独的列表。我试过了:lst2.append(x[0] for x in lst)
查看完整描述

3 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

使用列表理解

>>> lst = [['a','b','c'], [1,2,3], ['x','y','z']]>>> lst2 = [item[0] for item in lst]>>> lst2['a', 1, 'x']


查看完整回答
反对 回复 2019-08-12
?
jeck猫

TA贡献1909条经验 获得超7个赞

你可以使用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])


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 682 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信