如何垂直遍历列表?

use*_*064 2 collections loops for-loop list python-3.x

我有多个列表可供使用.我要做的是在垂直列中为每个列表(在本例中为索引1,2和3)取一个索引.并将这些垂直数字添加到空列表中.

line1=[1,2,3,4,5,5,6]
line2=[3,5,7,8,9,6,4]
line3=[5,6,3,7,8,3,7]

vlist1=[]
vlist2=[]
vlist3=[]
Run Code Online (Sandbox Code Playgroud)

预期产出

Vlist1=[1,3,5] 
Vlist2=[2,5,6]
Vlist3=[3,7,3]
Run Code Online (Sandbox Code Playgroud)

Blc*_*ght 5

在其中包含带数字的变量通常是设计错误.相反,您可能应该有一个嵌套的数据结构.如果你这样做你的line1,line2line3名单,你会得到一个嵌套列表:

lines = [[1,2,3,4,5,5,6],
         [3,5,7,8,9,6,4],
         [5,6,3,7,8,3,7]]
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下方式"转置"此列表列表zip:

vlist = list(zip(*lines)) # note the list call is not needed in Python 2
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过索引或切片到转置列表来访问内部列表(现在实际上是元组).

first_three_vlists = vlist[:3]
Run Code Online (Sandbox Code Playgroud)