从嵌套lis中删除特定列和行

2024-06-08 19:48:05 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,如果我有glider = [[0,0,0,0],[1,2,3,4],[0,1,3,4],[0,0,0,0]],如果嵌套列表不同,我将如何删除第一个和最后一个列表以及每个列表的第一个和最后一个字符。以后会变成这样。你知道吗

glider = [[2,3],[1,3]]

例如,我不能简单地使用del函数,因为维度会有所不同。例如:[[0,0,0,0,0],[1,2,3,4,5],[0,1,2,3,4],[0,0,0,0,0]][[0,0,0],[1,2,3],[0,0,0]]

这是一个更大的计划的一小部分,但它让我难堪。也许更好的方法是创建一个全新的列表?非常感谢。你知道吗


Tags: 方法函数列表字符计划delglider
3条回答

试试这个:

glider = [[0,0,0,0],[1,2,3,4],[0,1,3,4],[0,0,0,0]]

def my_strip(lst):
    if isinstance(lst, list):
        lst = lst[1:-1]
        for idx, val in enumerate(lst):
            lst[idx] = my_strip(val)
    return lst

print my_strip(glider)

可以使用切片和临时列表执行此操作:

glider = [[0,0,0,0],[1,2,3,4],[0,1,3,4],[0,0,0,0]]

glider = glider[1:-1]

templist = []

for i in glider:
    templist.append(i[1:-1])
glider = templist
del templist

输出:

>>> glider
[[2, 3], [1, 3]]

您可以使用给定的条件创建一个新列表

glider = [[y for y in x[1:-1]] for x in glider[1:-1]]

相关问题 更多 >