作业帮 > 综合 > 作业

关于python中 集合(set) 的语法疑问

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/10 13:34:11
关于python中 集合(set) 的语法疑问
在python中输入:
[x ** 2 for x in [1,2,3,4]]
结果是:
[1,4,9,16]
而输入:
{x ** 2 for x in [1,2,3,4]}
结果是:
{16,1,4,9}
怎么会这样?虽然集合好像是不分顺序的,但是这样乱排序也太奇怪了
关于python中 集合(set) 的语法疑问
集合用的实现是散列
python的散列表初始一般有8个槽
1对应1号槽 (1%8=1)
4对应4号槽 (4%8=4)
9对应?(9%8=1 重复,所以再散列到某位置)
而16则对应0号槽 (16%8=0)