返回信息流可恶的是他居然没给答案
问题是这样的 set的初始化可以用list这种可变类型, 也可以用tuple
但是不能用tuple混合list why?
这是一条镜像帖。来源:北邮人论坛 / python / #19339同步于 2017/9/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
【已解决】廖雪峰教程里面提出的一个问题
bluminFlower
2017/9/19镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
从这里https://www.safaribooksonline.com/library/view/python-cookbook/0596001673/ch05s18.html看了一个set的实现,从init里面可以看到当你用set()的时候,其实是把输入处理成了*args,这样就可以解释为什么list本身是unhashable但是可以作为set()的输入。如果输入是iterable的,那么这个输入的object本身是不是hashable就不考虑了,我们转而去关注iterate的各个元素是否是hashable。然而在第三行的例子中,list是不能hash的。所以。。。
本来想去看set源码。。。但是C学得太差。。。
求大神验证一下这个链接里面的set实现是正确的。
输入的数据
(1)可迭代
(2)每个元素hashable(list类型不可hashable,可以mutable,不能作为哈希表的key;tuple类型可以hashable,immutable)