为什么集合还是「了解」
因为集合的运算更多的注重逻辑操作,但是本菜鸡的逻辑学一直是学的一团乱麻,最早是看金岳霖先生那本小书(也有人说那本书的逻辑和计算机逻辑差十万八千里不过这倒也不重要),一翻开看到一层一层的推导式子,只有“抱歉”“告辞”“弄不了”三连解决,后来学真正的布尔代数之类的,也觉得好烦好烦,反正——和各位老爷一块学习吧……
集合的基本概念
集合的基本概念在前面更为初步的地方已经介绍过,所以我们着重写一写稍微另辟蹊径一点的“基本概念”:在Python2.3版本才出现了「集合」的概念,而在2.6才成为四个基本的卧槽类型之一,所以集合算是一个比较“年轻”的概念,值得注意的是,无论在列表还是元组字典中,虽然他们也有各种各样的姊妹数据类型,但没有一个像Set和Frozenset一样联系如此紧密而且都很常用,二者的区别简单来说是这样的:set类型本身是不可散列的,而frozenset则弥补了这个缺点(如果你还是不能理解散列,emmmmmm),就像“微博访问法”一样,我们也可以把这两种各有特色的类型组合在一起使用,在大概念上使用Set而内部使用可散列的frozenset
基本逻辑符
除了保证内部元素不重复之外,集合作为一种主攻逻辑的数据类型,还有很多常用的中缀表达式可供选择,比如说a | b
表示合集,a & b
表示交集而a - b
表示差集——用过C++的同学一定觉得并不陌生而且自然而然(虽然具体写法也不完全一样),这样除了能让代码更易读,而且砍掉了那些循环和andor也确实会加快运行速度。
关于逻辑
自从上大学以来,最令我震撼的专业知识莫过于所有“关系”都可以化简为“与或非”三种,(其实还可以再化简),试想一下宇宙之间所有的复杂关系,本质上无非是三种简单形式的自由组合——imazing啊
网友评论