Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_Printing - Fatal编程技术网

python打印列表时的混乱

python打印列表时的混乱,python,list,printing,Python,List,Printing,在下面的python代码中,我有一个列表,即to_do_列表,其中包含两个列表,即other_事件和grocery_列表,我在grocery_列表中插入了一个项目,然后将其删除 我的困惑是,当我更新杂货店列表时,待办事项列表会自动更新,但当我删除杂货店列表时,待办事项列表不会更新。。。为什么? grocery_list = ['banana', 'mango', 'apple'] other_events =['pick up kids','do laundry', 'dance class'

在下面的python代码中,我有一个列表,即to_do_列表,其中包含两个列表,即other_事件和grocery_列表,我在grocery_列表中插入了一个项目,然后将其删除

我的困惑是,当我更新杂货店列表时,待办事项列表会自动更新,但当我删除杂货店列表时,待办事项列表不会更新。。。为什么?

grocery_list = ['banana', 'mango', 'apple']

other_events =['pick up kids','do laundry', 'dance class']

to_do_list = [other_events, grocery_list]

print(to_do_list)

grocery_list.insert(1,'onions');

print(grocery_list)

del grocery_list

print(to_do_list)
其产出是:

[['pick up kids', 'do laundry', 'dance class'], ['banana', 'mango', 'apple']]
['banana', 'onions', 'mango', 'apple']
[['pick up kids', 'do laundry', 'dance class'], ['banana', 'onions', 'mango', 'apple']]
改为使用del\u list[:] 输出:

但是为什么呢? 假设我们有一个列表: 食品杂货清单=[“香蕉”、“芒果”、“苹果”]

使用此选项删除列表程序时,会引发错误:

Traceback (most recent call last):
  File "<pyshell#619>", line 1, in <module>
    del grocery_list
NameError: name 'grocery_list' is not defined
在这段代码中,您使用了del-grovery_-list,它只删除grovery_-list删除一个名称会从本地或全局命名空间中删除该名称的绑定,如果不清除该列表,您必须使用del-grovery_-list[:]来完全删除它
有关del ref to

的更多详细信息,更新杂货店列表时,将对象更新为杂货店列表的原因是,您的杂货店列表仅包含杂货店列表上的引用

现在,为什么删除杂货店列表后,to_do_列表没有更新是因为keywork del没有删除其上的对象,而只是从名称空间中删除杂货店列表

以下是关于del的一段引述:

删除一个名称将从本地或本地数据库中删除该名称的绑定 全局命名空间


杂货店清单上有很多关于它和

杂货店名单

将只删除一个引用,而其他引用将存在

从列表中删除所有引用的一种方法是使用切片分配

del grocery_list[:]

改为使用del\u list[:]
Traceback (most recent call last):
  File "<pyshell#619>", line 1, in <module>
    del grocery_list
NameError: name 'grocery_list' is not defined
del grocery_list[:]