python - 通过引用传递时验证python列表中完全相同的变量
问题描述
采用嵌套列表:
list = [[foo, foo], [foo, foo]], [foo, foo]]
.
我传递list
给一个函数,但我也分别通过引用相同的函数传递第二个嵌套列表作为list[1]
.
然后,在随机索引处的函数中,我[foo, foo]
在list
.
是否有可能确定我传递给函数的那个是哪一个[foo, foo]
?list
换句话说,我想[foo, foo]
在 now-modified 中获取我之前单独传递的原始索引的新索引list
。
解决方案
您正在寻找的是is
,它测试两个变量是否引用同一个对象。
在 iPython shell 中演示:
In [1]: list = [['foo', 'foo'], ['foo', 'foo'], ['foo', 'foo']]
In [2]: sublist = list[1]
In [3]: sublist is list[1]
Out[3]: True
In [5]: list.insert(1, ['foo', 'foo'])
In [6]: list
Out[6]: [['foo', 'foo'], ['foo', 'foo'], ['foo', 'foo'], ['foo', 'foo']]
In [7]: list.insert(1, ['foo', 'foo'])
In [8]: list
Out[8]:
[['foo', 'foo'],
['foo', 'foo'],
['foo', 'foo'],
['foo', 'foo'],
['foo', 'foo']]
In [9]: sublist is list [1]
Out[9]: False
In [10]: for count, l in enumerate(list):
...: if l is sublist:
...: print(count)
...:
3
In [11]: sublist is list[3]
Out[11]: True
推荐阅读
- kotlin - 我的压缩图像没有尺寸 android
- javascript - Javascript:为博客文章创建阅读更多/阅读更少功能
- python - Python 标准:返回共享基类的多个返回类型的类型提示
- android - 在 Android 应用中构建屏幕共享功能
- flutter - 如何使用图像 Flutter 创建简单的 Listview
- javascript - 从下拉列表中选择值时更改文本框的值
- python - 在 Python 中将 Presto 查询导出到 HDFS 表/文件中
- python - 将列表的内容输出到三个单独的文件中
- python - 从 numpy.ndarray 或列表初始化时,Tensorflow tf.ragged.constant 卡住了
- java - 是否有一个轻量级的 Targa(tga 格式)图像编写器基本上像这样但相反?