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

是否可以只遍历列表列表中的某个索引?

是否可以只遍历列表列表中的某个索引?

慕森王 2022-07-12 18:30:02
我有一个列表列表,其中内部列表中的索引包含相同类型的信息。如果我只想遍历每个列表的索引,这是一个有效的语句吗?for item in list_of_lists[:][0]:     doSomething()
查看完整描述

4 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您可以遍历列表列表并访问所需索引处的每个内部列表:


my_index = <some integer>


for item in lists_of_lists:

    doSomething(item[my_index])


查看完整回答
反对 回复 2022-07-12
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

如果您有包含相同信息的内部列表,并且您只想在第一个内部进行迭代,请执行以下操作:


[[1,2,3,4],

 [1,2,3,4],

 [1,2,3,4],

 [1,2,3,4],]


# iterate on 1,2,3,4

for item in list_of_lists[0]: # list_of_lists[0] is the 1st inner list

    doSomething(item)


# iterate on 2,2,2,2

for inner_list in list_of_lists: 

    doSomething(inner_list[1])


查看完整回答
反对 回复 2022-07-12
?
慕标5832272

TA贡献1966条经验 获得超4个赞

使用 numpy 数组,您的代码将起作用。


使用列表,您应该这样做:


# Some test data

list_of_lists = [

  [ 0,  1,  2,  3  ],

  [ 10, 11, 12 ,13 ],

  [ 20, 21, 22, 23 ],

  [ 30, 31, 32, 33 ]

]

index = 2 # the sublists index you want to iterate on


for item in ( sublist[index] for sublist in list_of_lists ):

  #doSomething() # Commented out for the demonstration to work

  print(item) # A print to see the values of item that you can remove

输出 :


2

12

22

32

这将遍历生成器,my_index为 中的每个子列表生成项目 at list_of_lists。


请注意,您可以在任何需要迭代的地方使用生成器。


(我假设doSomething()只是您的“有用代码”的占位符,如果不是,则项目不会传递给函数)


查看完整回答
反对 回复 2022-07-12
?
弑天下

TA贡献1818条经验 获得超8个赞

如果您要多次对列而不是行进行操作,请考虑转置数据,例如:


list_of_lists = [[1,2,3],[4,5,6]]

transposed = list(zip(*list_of_lists))

print(transposed)  # [(1, 4), (2, 5), (3, 6)]

for item in transposed[1]:

    print(item)

输出:


2

5

请注意,此解决方案仅在您不打算更改list_of_lists


查看完整回答
反对 回复 2022-07-12
  • 4 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

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