给定SQL表中的list_of_list,我想分析相邻行的集合,将list_of_list划分为第2列的相等元素,然后是第1列的相等元素。 例如,给定
list_of_list = [[1,1,3,2],
[1,3,3,2],
[1,3,6,2],
[1,3,6,2],
[1,5,5,2],
[1,3,5,2]]
我希望得到以下输出
[1,1,3,2]
[1,3,3,2]
[1,3,6,2]
[1,3,6,2]
[1,5,5,2]
[1,3,5,2]
以下代码有什么问题?
for key1, items1 in groupby(list_of_list, itemgetter(2)):
for key2, items2 in groupby(items1, itemgetter(1)):
for i in items2:
print(i)
print
它返回以下输出
[1,1,3,2]
[1,3,3,2]
[1,3,6,2]
[1,3,6,2]
[1,5,5,2]
[1,3,5,2]
答案 0 :(得分:1)
正如评论中所提到的,如果您取消查看最后一个print
语句,您的代码就可以正常运行:
for key1, items1 in groupby(list_of_list, itemgetter(2)):
for key2, items2 in groupby(items1, itemgetter(1)):
for i in items2:
print(i)
print
要获取items2
的第一个元素,您可以使用next,如下所示:
first_of_items2 = next(items2, 'items2 was empty')