-2
请问任何人请解释removing items from a list如何工作以及为什么removing items from a set不起作用?在python中迭代序列时删除
尽管我们可以迭代列表和集合,但为什么不能对集合进行更改?是因为套件没有订购吗?
请问任何人请解释removing items from a list如何工作以及为什么removing items from a set不起作用?在python中迭代序列时删除
尽管我们可以迭代列表和集合,但为什么不能对集合进行更改?是因为套件没有订购吗?
引擎盖下SET实现与LIST完全不同。
列表: Python的列表是可变长度的数组,而不是Lisp样式的链接列表。该实现使用连续的对其他对象的引用数组,并在列表头结构中保存一个指向该数组的指针和数组的长度。
集合:集合使用散列表作为基础数据结构。就像字典,但有虚拟值。而且我们使用键作为列表中的元素。
Dictionaries or Set
实施tp_iter槽返回一个有效的迭代器,在所述字典的键迭代。在这种迭代过程中,不应修改字典或设置,但允许设置现有密钥的值为 (删除或添加不是,也不是update()方法)。这意味着,我们可以写
所以,当你迭代的一组
>>> for i in s:
... s.pop()
...
0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: Set changed size during iteration
>>>
但是如果你使用while
你可以删除或更新:
>>> s = set(range(5))
>>> while s:
... s.pop()
... print s
...
0
set([1, 2, 3, 4])
1
set([2, 3, 4])
2
set([3, 4])
3
set([4])
4
set([])
>>>
阅读首先是文档。 –