首页 > 解决方案 > 列表引用

问题描述

如何将 python 中的某些列表值引用给其他人?(见下面的例子)

my_list = [ 5, my_list[0] * 2, 25 - my_list[1] ]
print(my_list) # expected output: [5, 10, 15]

我收到一个错误(可能是因为我不知道该怎么做)

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    my_list = [ 5, my_list[0] * 2, 25 - my_list[1] ]
NameError: name 'my_list' is not defined

标签: pythonlist

解决方案


你不能;通常,在 RHS 完成创建值之前,LHS 上的名称不会绑定到任何东西。(错误是因为您试图重用绑定到类型 list的名称作为 . 的实例的名称list。不要那样做。)

在 Python 3.8 中,您可以执行以下操作,尽管我不确定这样做的好处是什么,除了可以更轻松地编辑部分定义而无需重写整个内容。

lst = [(y := 5), (z := y * 2), 25 - z] 

适用于任何Python 版本的更直接的定义将只使用临时变量:

y = 5
z = y * 2
lst = [y, z, 25 - z]

推荐阅读