我是一个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
?我确定我错过了一些非常简单的事情,但我的谷歌技能似乎让我失望了。
答案 0 :(得分:2)
您未将名称dc
存储在ny
列表中。您存储了对同一列表对象的引用。
然后反弹名称dc
以指向新列表。列表中的另一个参考文献没有随之改变。
而不是为dc
创建新列表,而是将其更改为就地。将新条目添加到现有列表中:
dc.extend([mia, 'Miami', chi, 'Chicago', ny, 'New York'])
或用新内容替换列表中的所有元素(可能为0):
dc[:] = [mia, 'Miami', chi, 'Chicago', ny, 'New York']
答案 1 :(得分:1)
你有这个:
dc = []
然后这个:
ny = [bos, 'Boston', dc, 'Washington D.C.', chi, 'Chicago']
因此,您已将空列表(dc
)放入ny
列表中。之后,您将dc
重新分配给其他内容,但ny[2]
上的列表仍然是您最初放入其中的空列表。
在将dc
放入ny
之前尝试分配dc
,或尝试修改 {{1}}而不是重新分配它。
答案 2 :(得分:0)
这里的错误是你在定义“ny”后给“dc”赋值。
当您尝试print_station(ny [2])`
时,您将获得一个空列表>>>print_station(ny[2])
>>>[]
但如果您编写如下代码:
ny = []
bos = []
dc = []
mia = []
chi = []
dc = [mia, 'Miami', chi, 'Chicago', ny, 'New York']
ny = [bos, 'Boston', dc, 'Washington D.C.', chi, 'Chicago']
print_station(ny[2])
print_station()
print_station()
print_station(dc)
您将获得以下输出:
>>>[[], 'Miami', [], 'Chicago', [], 'New York']
[[], 'Miami', [], 'Chicago', [], 'New York']
答案 3 :(得分:0)
您知道位置了吗,调用列表并将[Number here]放在方括号内。
list = ['Yellow', 'Red', 'blue']
如果您想在列表中获得第二名,则该列表中的数字为1,因为python从0开始计数。
print(list[1])
结果:
>>'Red'