微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 将嵌套列表值附加到新列表中

我有一个程序,它有一个我希望访问的嵌套列表,然后根据条件附加到新列表.每个列表中有三列,我希望知道如何单独访问它们.这是它当前的样子[[‘A’,’B’,’C’],[‘D’,’E’,’F’],[‘G’,’H’,’I’]].一个更好地解释这个问题的例子是,如果我想要第二列中的数据,那么我的新列表将看起来像[‘B’,’H’].

这是我到目前为止,但我现在相当困难..

n = 0
old_list = [['A','B','C'],['D','E','F'],['G','H','I']]
new_list = []

for a,sublist in enumerate(old_list):
       for b,column in enumerate(sublist):
              print (a,b,old_list[a][b])
              if n == 0:
                     new_list.append(column[0])
              if n == 1:
                     new_list.append(column[1])
              if n == 2:
                     new_list.append(column[2])

print(new_list)

我目前的输出..

0 0 A
0 1 B
0 2 C
1 0 D
1 1 E
1 2 F
2 0 G
2 1 H
2 2 I
['A','C','D','F','G','I']

我想要的输出..

n = 0
new_list = ['A','G']

n = 1
new_list = ['B','H']

n = 2
new_list = ['C','I']

谢谢你的帮助!

解决方法

>>> L = [['A','I']]
>>> columns = list(zip(*L))
>>> columns
[('A','G'),('B','H'),('C','I')]
>>> columns[1] # 2nd column
('B','H')

或者,如果您希望每列都作为列表进行修改(因为zip返回不可变元组),那么使用:

columns = [list(col) for col in zip(*L)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐