时间:2022-04-29 点击: 次 来源:网络 作者:佚名 - 小 + 大
零基础学python之函数全解的树状图语言第三周的优势免费下载
下载地址 https://share.weiyun.com/S11bpehi
资料目录 小甲鱼零基础学python视频全套96集 刘金玉零基础python入门到精通教程100集全套VIP精选 跟老齐学Python从入门到精通 电子工业出版社 如果说元组(tuple)算是列表(list)和字符串(str)的杂合,那么集合(set)则可以堪称是list和dict的杂合。 集合拥有类似字典的特点:可以用{}花括号来定义;其中的元素没有序列,也就是非序列类型的数据;而且集合中的元素不可重复,这就类似于dict键。 集合也有一点列表的特点:有一种集合可以在原处修改。 通过实验,逐步理解创建set的方法: >>> s1 = set("qiwsir") >>> s1 set(['q', 'i', 's', 'r', 'w']) 把字符串中的字符拆解开形成了集合。特别注意观察:qiwsir中有两个i,但是在s1中只有一个i,也就是集合中元素不能重复。 >>> s2 = set([123, "google", "face", "book", "facebook", "book"]) >>> s2 set(['facebook', 123, 'google', 'book', 'face']) 在创建集合的时候,如果发现了重复的元素,就会过滤一下,剩下不重复的。而且,从s2的创建可以看出,查看结果时显示的元素排列顺序与开始建立时不同,完全是随意显示的(怎么能说明是随机的呢?读者有没有办法?),这说明集合中的元素没有序列。 >>> s3 = {"facebook", 123} #通过{}直接创建 >>> s3 set([123, 'facebook']) 除了用set()来创建集合,还可以使用{}的方式,但是这种方式不提倡使用,因为在某些情况下,Python搞不清楚是字典还是集合。看看下面的探讨就发现问题了。 >>> s3 = {"facebook", [1,2,'a'], {"name":"python", "lang":"english"}, 123} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'dict' >>> s3 = {"facebook", [1,2], 123} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' 从上述实验可以看出,通过{}无法创建含有列表或者字典类型对象元素的集合。 认真阅读报错信息,有这样的词汇:“unhashable”,在理解这个词之前,先看它的反义词“hashable”,很多时候翻译为“可哈希”,其实它有一个不是音译的名词“散列”。如果我们简单点理解,某数据“不可哈希”(unhashable)就是其可变,如列表和字典都能原地修改,就是unhashable。否则,不可变的,类似字符串那样不能原地修改的就是hashable(可哈希)。 对于字典类型的对象,其“键”必须是hashable,即不可变。 现在遇到的集合,其元素也是“可哈希”的。上面的例子,试图将字典、列表作为元素的元素,就报错了。而且报错信息中明确告知列表和字典是不可哈希类型,言外之意,里面的元素都应该是可哈希类型。 |
上一篇:33岁开始零基础学python第三方库公式大全创建表单型号规格
下一篇:没有了