在Python中,我可以直接引用某个列表中某个项的值,例如my_list[0][0]?
我使用的是Python 3.7.2。
这个:direct = my_list[0][0]不起作用; 虽然它们最初都指向同一个对象,但在my_list[0][0]更改时,Python会更改列表对象。direct指向具有旧值的原始对象,并my_list[0][0]指向具有新值的新对象。my_list[0][0]即使在值更改后,我也在寻找一种直接指向值的方法,而不必调用调用的开销my_list[0][0]。(这可能不适用于列表?)
代码确认以上内容:
my_list = [[0, 1], [0, 1]]
direct = my_list[0][0]
print(id(direct)) print(direct) print(id(my_list[0][0])) print(my_list[0][0])
my_list[0][0] = 10
print(id(direct)) print(direct) print(id(my_list[0][0])) print(my_list[0][0])
不可能。Python引用不像那样工作。引用始终引用对象,而不引用其他引用或对象。
如果你永远不会重新分配list[0],那么你可以保存对该子列表的引用,所以你只需要这样做sublist[0]:
sublist = list[0]
...
do_whatever_with(sublist[0]) # instead of list[0][0]
另外,不要调用你的变量list。该list类型在该名称上有dibs,当你想要调用list某些东西时,你会感到困惑。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。