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

四个数据结构:list、tuple、dict和set

list

Python的list与数组类似,是一种可变的有序的集合。先看如何定义一个list,用 括起来所有的元素:

用索引访问每一个位置的元素,索引从0开始的。越界时报 的错误。索引用负数可以从后往前获取,如a[-1]得到的是最后一个元素。

用 函数可以获得list元素的个数。

用 往list追加元素到末尾。

用 将元素插入到指定的位置。

用 方法删除list末尾的元素,如果传入索引,可以删除指定位置的元素。

要把某个元素替换成别的元素,可以直接赋值。list里面的元素类型可以不同,list里面的元素也可以是list。

要得到“php”,可以用 得到,这样就像一个二维数组。因此更多维的list也是可以构造的。

如果一个list中一个元素也没有,可以写成 ,就是一个空的list,它的长度为0。

tuple

tuple也是一种有序列表,但是与list不同的是,tuple一旦初始化就不能再修改。用 括起来所有的元素。

tuple一旦初始化不能修改,定义tuple时,tuple的元素必须被定义下来。空的tuple可以写成 。

但是注意,只有一个元素的tuple,如果写成:

这里的t不是tuple,而是数字1。原因在于括号的歧义,在这种情况下,()表示小括号。因此一个元素的tuple需要在元素后加逗号。

如果tuple里的元素是list或其他的类型,可以实现tuple的可变。这里的原理其实是tuple的不变指的是“指向的不变”。

dict

dict类似Java中的Map,使用键-值对存储数据,具有极快的查找速度。定义一个dict的方法如下:

与Java中的Map一样,通过 来取数据和放入数据。

一个key只能对应一个value,后面的值会把前面的值冲掉。如果key不存在,dict会报错。

使用 来判断key是否存在:

通过 方法,如果key不存在返回 ,或者自定义的值。注意返回None的时候,Python的交互环境不显示。

用 的方法删除一个键值对。

使用dict的第一要点就是key必须是不可变对象。因为需要保证hash的正确,key不可变,因此类似使用list作为key是不正确的。

set

set是一组key的集合,但是没有value,由于key不能重复,在set中,也没有重复的key。

要创建一个set,需要传入一个list作为输入集合,在set中元素没有顺序,重复元素会被自动过滤。

通过 方法添加元素,重复添加不报错,但是没有效果。通过 方法删除元素。

set是无序和无重复的集合,因此,两个set可以进行 和 的操作。

set也不能放入可变对象。

不可变对象

str是不变对象,而list是可变对象。对于不可变对象,调用自身任意方法,也不会改变对象自身的内容,这些方法会创建新的对象并返回,保证不可变对象本身是不可变的。

tuple是immutable的,所以它是可哈希的(hashable),所以它可以作为dict的key,或者保存进set中。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券