我正在尝试获取列表中列表之间的项目子序列。例如,如果我有:
list=[[1,2,3,4],[],[6,9],[2],[3],[4]]
我想从
list[0][1]
到list[2][1]
提取项目,放入另一个列表中。这个结果列表将是[2,3,4,6]
(忽略中间的空列表)。我该怎么做?我一直在尝试使用
for i in range(...)
循环,但它对我没有用。我正在尝试获取列表中列表之间的项目子序列。例如,如果我有:
list=[[1,2,3,4],[],[6,9],[2],[3],[4]]
list[0][1]
到list[2][1]
提取项目,放入另一个列表中。这个结果列表将是[2,3,4,6]
(忽略中间的空列表)。for i in range(...)
循环,但它对我没有用。list_of_lists
1,使用列表推导式和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
的名称,导致您无法访问它。
试试这个:
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