【发布时间】:2020-05-03 12:17:31
【问题描述】:
x = [1, 2, 3, 3, 4, 4]
y = set(x)
print(y)
y.pop()
y.pop()
print(y)
这是我的示例代码。在我阅读的文档中,集合总是丢弃随机项目,但我的代码总是返回:
{1, 2, 3, 4}
{3, 4}
我在这里做错了什么还是为什么前两个项目总是被丢弃?如果我想删除最后一个元素,是否需要将集合转换为列表,然后再转换回集合?
【问题讨论】:
-
如果你不知道 set 的内部存储是如何构成的,它就不是随机的。
-
它看起来是有序的,因为
int值是如何散列的。尝试先将x设置为str值列表。 -
唯一的结论似乎是:我们可以在不弹出的情况下预测弹出的项目,因为它始终是字符串表示中的第一项。