我是一个Python初学者,只专注于一个简单的问题。我可能无法清楚地描述我的问题,但四处寻找并没有收获。你知道吗
我在Python中有两个嵌套列表:
ny = []
bos = []
dc = []
mia = []
chi = []
ny = [bos, 'Boston', dc, 'Washington D.C.', chi, 'Chicago']
dc = [mia, 'Miami', chi, 'Chicago', ny, 'New York']
我编写了一个函数,它可以打印列表中的所有其他项,也就是说,只打印这些特定列表中人类可读的值。你知道吗
当我这样调用函数时:
print_stations(dc)
…正常工作:
1 . Miami
2 . Chicago
3 . New York
但当我这样称呼它的时候:
print_stations(ny[2])
…我什么也没得到。你知道吗
为什么ny[2] == dc
不是?我肯定我错过了一些非常简单的东西,但我的谷歌技能似乎让我失望了。你知道吗
您没有将名称
dc
存储在ny
列表中。您存储了对同一列表对象的引用。你知道吗然后将名称
dc
指向一个新的列表。列表中的另一个参考并没有因此而改变。你知道吗与其为
dc
创建一个新的列表,不如就地修改它。向现有列表添加新条目:或者用新内容替换列表中的所有元素(可以是0):
你有这个:
然后这个:
所以您将一个空列表(
dc
)放入了ny
列表中。之后,您将dc
重新分配给其他对象,但是ny[2]
处的列表仍然是您最初放在那里的空列表。你知道吗在将
dc
放入ny
之前尝试分配它,或者尝试修改^{dc
而不是重新分配它。你知道吗这里的错误是在定义“ny”之后给“dc”赋值。你知道吗
当您尝试打印站点(ny[2])时,将得到一个空列表`
但是如果你这样写代码:
您将获得以下输出:
相关问题 更多 >
编程相关推荐