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

4

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

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个回答

2
假设您的列表名为list_of_lists1,使用列表推导式enumerate()函数,可以这样写:
[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的名称,导致您无法访问它。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接