首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python和Scala的集合和映射

在入门系列的最后,让我们来看看基于hash表的两种常见的数据结构,集合和映射。在Scala里的集合和映射,这两种数据结构都有可变和不可变的两种版本,区别仅仅在于类的继承关系。而Python的集合也有可变和不可变两种,内置的字典则是只有一种,但是在types模块里有基于字典的MappingProxyType的不可变的只读视图。

集合

先从集合说起吧,集合的意义和数学上的集合论的集合是一样的,里面的值不存在重复,有着集合的交并集的操作。

1.集合的构造

Scala

Python

从这里可以看出Scala默认的Set是不可变的集合。如果要做一个可变集,需要import。

而Python不需要import,它的不可变集合是内置的,使用的是frozenset。

2.集合的求交集和并集

Scala

Python

3.增添元素

Scala

Python

这里的set0实际上是重新赋值了,而不是原地添加,所以我们会使用var定义变量,而Python的集合是原地添加元素。

4.判断某个元素是否存在

Scala

Python

映射

Map这个实际上有很多的别名,在Scala里称为映射,而在Python则被称为字典,本质都是一样的基于Hash表的数据结构,能够快速的查找某个值。

1.构造

Scala

Python

我们可以注意到Scala的Map使用->作为分隔符,而Python使用了:(八卦下:这个符号通过Python,影响了js,进而成为了json的分隔符),Scala的默认版本是不可变的映射,而不是可变的映射,这也是Scala设计者对于函数式的不可变的推崇的体现吧

2.增添元素

初始化为空值

Python

好了,入门系列就到此为止了,下一章我们就要深入类和对象了,开始真正的编程之旅了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308G1P65D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券