如何从一个复杂的结构中优雅的提取出一列数据

在python中,数据呈现以下结构
list(tuple(a,b,c))
example:
[(a0,b0,c0),(a1,b1,c1),(a2,b2,c2)]
现在想使用一种优雅的方法,将c数据提取出来,变为以下结构
list(c)
example:
[c0,c1,c2]

个人不太熟悉python的特性.这个用循环应该可以做到,但是感觉不太优雅,是否有一种比较python的方式?

PS:第一次问问题,请多多包涵,噗

阅读 11.1k
3 个回答
lst = [(a0,b0,c0),(a1,b1,c1),(a2,b2,c2)]
lst = [t[2] for t in lst]

example:

>>> lst = [(1,2,3), (1,2,3), (1,2,3)]
>>> lst = [t[2] for t in lst]
>>> lst
[3, 3, 3]

我回答過的問題: Python-QA

回答一个扩展的问题
如何把一个[(a0,b0,c0),(a1,b1,c1),(a2,b2,c2)]的列表转换成[(a0,a1,a2),(b0,b1,b2),(c0,c1,c2)]

>>> lst = [(1,2,3), (1,2,3), (1,2,3)]
>>> list(zip(*lst))
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
新手上路,请多包涵

将列表看做矩阵,利用转置矩阵,取行,然后再取转置矩阵
list.transpose()[2].transpose()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题