如何从列表列表中获取多个列表中的项目子序列?

时间:2018-10-15 20:25:53

标签: python python-3.x list nested subsequence

我正在尝试获取列表列表中2个列表之间的项目子序列。例如,如果我有

list=[[1,2,3,4],[],[6,9],[2],[3],[4]]

我想将从list[0][1]list[2][1]的项目提取到另一个列表中。然后,该结果列表将为[2,3,4,6](忽略之间的空列表)。

我该怎么做?我一直在尝试使用for i in range(...)循环,但它对我不起作用。

2 个答案:

答案 0 :(得分:2)

假设您的列表名为list_of_lists 1 ,则使用list comprehensionenumerate()可以起作用:

[n for i, sub_list in enumerate(list_of_lists)
   for j, n in enumerate(sub_list)
   if (0, 1) <= (i, j) < (2, 1)]

1 在您的示例中,调用列表list是一个坏主意,因为它会掩盖类型list的名称,然后您将无法访问。

答案 1 :(得分:0)

尝试一下:

def complex_slice(my_list, i, j, k):
    result = my_list[i][k:]
    for sub_list in my_list[ (i + 1) : (j - 1) ]:
        result.extend(sub_list)
    result.extend(my_list[j][:k])
    return result