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

我有一个列表列表,其中内部列表中的索引包含相同类型的信息。如果我只想遍历每个列表的索引,这是一个有效的语句吗?

for item in list_of_lists[:][0]:
    doSomething()


慕森王
浏览 109回答 4
4回答

斯蒂芬大帝

您可以遍历列表列表并访问所需索引处的每个内部列表:my_index = <some integer>for item in lists_of_lists:&nbsp; &nbsp; doSomething(item[my_index])

摇曳的蔷薇

如果您有包含相同信息的内部列表,并且您只想在第一个内部进行迭代,请执行以下操作:[[1,2,3,4],&nbsp;[1,2,3,4],&nbsp;[1,2,3,4],&nbsp;[1,2,3,4],]# iterate on 1,2,3,4for item in list_of_lists[0]: # list_of_lists[0] is the 1st inner list&nbsp; &nbsp; doSomething(item)# iterate on 2,2,2,2for inner_list in list_of_lists:&nbsp;&nbsp; &nbsp; doSomething(inner_list[1])

慕标5832272

使用 numpy 数组,您的代码将起作用。使用列表,您应该这样做:# Some test datalist_of_lists = [&nbsp; [ 0,&nbsp; 1,&nbsp; 2,&nbsp; 3&nbsp; ],&nbsp; [ 10, 11, 12 ,13 ],&nbsp; [ 20, 21, 22, 23 ],&nbsp; [ 30, 31, 32, 33 ]]index = 2 # the sublists index you want to iterate onfor item in ( sublist[index] for sublist in list_of_lists ):&nbsp; #doSomething() # Commented out for the demonstration to work&nbsp; print(item) # A print to see the values of item that you can remove输出 :2122232这将遍历生成器,my_index为 中的每个子列表生成项目 at list_of_lists。请注意,您可以在任何需要迭代的地方使用生成器。(我假设doSomething()只是您的“有用代码”的占位符,如果不是,则项目不会传递给函数)

弑天下

如果您要多次对列而不是行进行操作,请考虑转置数据,例如:list_of_lists = [[1,2,3],[4,5,6]]transposed = list(zip(*list_of_lists))print(transposed)&nbsp; # [(1, 4), (2, 5), (3, 6)]for item in transposed[1]:&nbsp; &nbsp; print(item)输出:25请注意,此解决方案仅在您不打算更改list_of_lists
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python