vir*_*007 2 python set python-3.x
如何删除集合的最后一个元素,或创建一个没有最后一个元素的新集合?集合不支持索引。我有一组整数,想删除最大的。
您可以使用以下remove方法删除任何指定的元素:
>>> s = {3, 'a', True}
>>> s
{'a', True, 3}
>>> s.remove(3)
>>> s
{'a', True}
Run Code Online (Sandbox Code Playgroud)
然而,任何“最后”的概念都必须来自于集合本身之外,因为集合并不实现固定顺序的思想。请注意上面分配值和打印值之间的差异。
OP澄清后更新
删除集合中数值最大的元素:
s.remove(max(s))
Run Code Online (Sandbox Code Playgroud)
您评论道:
如果集合仅包含整数,则默认情况下元素按升序列出。
这是不正确的。例如:
>>> lll = [3**n for n in range(10)]
>>> sss = set(lll)
>>> sss
{1, 6561, 3, 19683, 9, 2187, 81, 243, 729, 27}
Run Code Online (Sandbox Code Playgroud)
也许您对Python中小整数的一些影响感到困惑。(通常)256 以内的整数常量由运行时系统预先分配,以数字顺序存储在内存中,并进行特殊的哈希处理。这样做的效果之一是它们的哈希值是有序的。一旦超出该范围,散列就会不同,如上所示:
| 归档时间: |
|
| 查看次数: |
12222 次 |
| 最近记录: |