2016-04-30 59 views
0

筛选嵌套列表我有如下列表:如何在python

my_list = [ 
[0, 0, [21, 24]], 
[0, 1, [2, 13]], 
[0, 3, [1, 15]], 
[0, 4, [1, 6]], 
[0, 6, [11]], 
[0, 7, [1]], 
[1, 0, [3, 4, 10, 17]], 
[1, 1, [1, 15, 19, 24]], 
[1, 2, [1]], 
[1, 3, [5, 6, 18]], 
[1, 4, [15, 24, 25]], 
[1, 5, [10, 22]], 
[1, 6, [16, 30, 31]], 
[2, 0, [7, 20]], 
[2, 1, [5]], 
[2, 3, [11, 14]], 
[2, 4, [5, 10]], 
[2, 5, [15]], 
[2, 6, [6, 10]], 
[2, 7, [12]], 
[3, 0, [11, 18]], 
[3, 2, [2, 22]], 
[3, 5, [8]], 
[3, 6, [15]], 
[3, 7, [5]] 
] 

我要检索的后续数据:

[X,Y,[Z] [X + 1,Y 1,[Z]] [X + 2,Y + 2,[Z]] [X + 3,Y + 3,[Z]]

应该得到:

[0, 3, [1, 15]],  
[1, 4, [15, 24, 25]], 
[2, 5, [15]],  
[3, 6, [15]],  

,其中x是一个字中的字符索引,y是行号,z是列号。 将z作为你可以看到可超过1选项

final = [(i,j,) for i,j in my_list if i[0]==j[0] and i[1]==j[1]+1 and i[2]==j[2]] 

越来越ValueError: too many values to unpack

+1

您的预期输出是什么?你的代码还有其他一些问题(让'int'对象现在是不可编程的)。 – Bahrom

+0

什么是“字符” - 所有的值都是整数?你想得到/接受什么元素? – MaxU

+0

编辑问题最终结果应该是:[0,3,15], [1,4,15], [2,5,15], [3,6,15], – ilovepython75

回答

2

my_list每一个元素都有哪些你试图解压到2.这是太多的三大要素。

>>> i, j = [0, 0] 
>>> i, j = [0, 0, 1] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: too many values to unpack 
>>> i, j = [0, 0, [21, 24]] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: too many values to unpack 
>>> i, j, k = [0, 0, [21, 24]] 
>>> i 
0 
>>> j 
0 
>>> k 
[21, 24]