【发布时间】:2021-04-27 05:49:30
【问题描述】:
我想传递对 int 列表列表的引用,而不是 int 值本身。
我有一个整数列表列表,它代表一个根优先二叉树,我称之为aTriangle
我正在建立一个名为 path 的列表,因为我正在走下aTriangle
path 正在填充对 aTriangle 的引用,格式为 aTriangle[i][j]
问题是当我尝试打印或传递 path 时,它是一个 int 值列表,而不是我放入其中的引用列表。
例如,
test_triangle = [[1], [2, 3], [4, 5, 6]]
test_list = [test_triangle[0][0], test_triangle[1][0]]
print(test_list)
打印出[1, 2](类似地,通过 test_list 传递值)
但我想要[test_triangle[0][0], test_triangle[1][0]]
如何建立一个作为参考的参考列表?或者,如果这是不可行的,我是否有另一种方法来记录与该值关联的两个索引,因为这些索引值对后面的步骤很重要。
【问题讨论】:
-
您似乎误解了 python 列表的工作原理,当您索引列表列表时,您得到的实际上是对包含列表的引用。但是当您打印它时,python 足够聪明,可以打印引用列表的 repr 而不是 c/c++ 中的列表地址
-
是否有另一种方法让我保留与值关联的两个索引 是的,将索引存储在
test_list中。 -
“我是否有另一种方法来保存与值关联的两个索引”.. 查找 xarray,xarray 中包含的元素存储它们所在的索引。
-
Python 总是有引用语义(虽然它既不是按值调用也不是按引用调用)
-
@Countout-Integral 你知道吗,这是完美的。这是保存索引的简单、直接的方法,当我最终需要该值时,我可以轻松调用它。谢谢!
标签: python list pass-by-reference