set集合的遍历顺序

1、set集合

        set集合是一个无序的不重复元素序列,集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

2、集合的遍历

        我们已经知道集合中的元素不会重复,可以猜测的到应该是使用哈希值进行存储的。这点可以非常轻松的验证。我们使用整数来进行验证,因为整数的哈希值就是他们本身。

        我们新建一个 set 集合,在里面依次插入1-5,打印输出 x_set 的内容,然后再插入一个 32 并打印结果,最后再插入一个39,打印结果,我们分别得到了三次 set 集合中的内容。

    x_set = set()
    for i in range(1, 6):
        x_set.add(i)
    print("x_set:")
    for x in x_set:
        print(x, end="\t")
    print()
    print("insert 32:")
    x_set.add(32)
    for x in x_set:
        print(x, end="\t")
    print()
    print("insert 39:")
    x_set.add(39)
    for x in x_set:
        print(x, end="\t")

输入结果:

结论:

1、第一次的打印结果应该是 1 到 5 ,是按照正常的顺序输出的结果。

2、在插入了 32 之后,它被插入到了 1 的前面,我们记作 0 号位置。在插入 32 时,hash 表的长度会进行增加,按照 2^n 向上取整,表的实际长度延伸到了 32 ,所以 32 会被插入到 0 号位置。

3、在插入 39 时,39 对 32 取余的结果是 7 ,所以会在 5 的后面。

4、假如这时我们插入一个38,则 38 会排在 39 的前面,这点可以自行进行验证。

综上可以看到,输出的结果和我们想的是一样的,符合我们的预期猜测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值