Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除列表中的列表_Python_List_Integer_Indices - Fatal编程技术网

Python 删除列表中的列表

Python 删除列表中的列表,python,list,integer,indices,Python,List,Integer,Indices,我有一张这样的清单 x = [ [ [[guy, 100], [guy, 200]], [[guy, 50], [guy, 60]] ] [ [[guy, 10], [guy, 20]], [[guy, 5], [guy, 6]] ] ] 每个小名单,都是一个家伙,在我删除他之前,他还有多少时间。我试着这样做: del x[0][0][0] 我经常遇到的错误是: TypeError: List indices must be integers not li

我有一张这样的清单

x = [ [ [[guy, 100], [guy, 200]],
      [[guy, 50], [guy, 60]]  ]
    [ [[guy, 10], [guy, 20]],
      [[guy, 5], [guy, 6]]  ] ]
每个小名单,都是一个家伙,在我删除他之前,他还有多少时间。我试着这样做:

del x[0][0][0]
我经常遇到的错误是:

TypeError: List indices must be integers not lists.
我知道这个错误意味着什么,但我还没有找到任何删除该列表的好方法。我听到的唯一建议是

del x[0][0][0][:]
这给了我同样的错误,并且:

x[0][0][0] = []
这也给了我同样的错误

这里的现实是,这是我代码的简化版本。在我的实际代码中,0实际上是循环变量


是我调用列表来标识列表位置的错误,还是我删除了所有内容都不正确?

您在第二行末尾漏掉了一个逗号。应该是:

x = [ [ [[guy, 100], [guy, 200]],
        [[guy, 50], [guy, 60]] ],
      [ [[guy, 10], [guy, 20]],
        [[guy, 5], [guy, 6]] ] ]
事实上,您所说的错误不是来自
del
命令,而是来自列表定义


<>你也应该考虑以更好的方式构造你的数据。

我不确定是什么导致你对你的对象的这种“3-D”数组式存储的需要。您应该能够使用一维数组和类内的时间封装来完成任务

class guy:
    def __init__(self, time):
        self.timeBeforeDelete = time

    def __str__(self):
        return "{0}".format(self.timeBeforeDelete)

def printList(aList):
    for item in aList:
        print item

if __name__ == '__main__':
    x = [guy(100), guy(200), guy(50), guy(60), guy(10), guy(20), guy(5), guy(6)]
    printList(x)
    del x[1]
    printList(x)
此代码允许您从列表中自由删除,并将程序的复杂性降至最低。使用嵌套列表结构有什么具体原因吗?更确切地说,您的错误实际上是一个语法错误

x = [ [ [[guy, 100], [guy, 200]],
      [[guy, 50], [guy, 60]]  ],
    [ [[guy, 10], [guy, 20]],
      [[guy, 5], [guy, 6]]  ] ]

您缺少分隔列表项的逗号。现在可以这样做了,但确实应该避免这种列表结构,因为它使访问列表中的项目变得非常麻烦。

我认为您可能在列表中删除了一些逗号,可能是在第2/4行的末尾。