小编ewo*_*718的帖子

为什么等效字符串的ID之间存在奇怪的行为?

根据我的理解,如果为不可变类型的变量赋值等于同一不可变类型的另一个变量,则它们都应该引用同一个对象.我使用的是Python 2.7.6,不知道这是不是一个bug.

这表现得像我如何理解:

x = 'ab'
y = 'ab'
id(x) == id(y)
True
Run Code Online (Sandbox Code Playgroud)

但是,通过更改字符,这不起作用:

x = 'a#'
y = 'a#'
id(x) == id(y)
False
Run Code Online (Sandbox Code Playgroud)

奇怪的是,并行分配是非常不同的!

x, y = 'a#','a#'
id(x) == id(y)
True
Run Code Online (Sandbox Code Playgroud)

我不明白这种行为.

python python-2.7

7
推荐指数
1
解决办法
89
查看次数

iter(x)和x .__ iter __()有什么区别?

iter(x)和之间有什么区别x.__iter__()

根据我的理解,他们都返回一个listiterator对象,但在下面的例子中,我注意到它们不相等:

x = [1, 2, 3]
y = iter(x)
z = x.__iter__()
y == z
False
Run Code Online (Sandbox Code Playgroud)

有没有我不了解迭代器对象的东西?

python

5
推荐指数
1
解决办法
763
查看次数

标签 统计

python ×2

python-2.7 ×1