4 回答
TA贡献1827条经验 获得超8个赞
您可以遍历列表列表并访问所需索引处的每个内部列表:
my_index = <some integer>
for item in lists_of_lists:
doSomething(item[my_index])
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])
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()只是您的“有用代码”的占位符,如果不是,则项目不会传递给函数)
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
添加回答
举报