Python数据集合

Date:2018/06/25       Cat:开发者手册       Word:共1966字             

文章目录 「隐藏」
  1. 列表
  2. 元组
  3. 集合
  4. 字典

列表

列表是有序可变的数据集合,并且一对[]来表示这是一个列表,元素之间逗号分隔,每个数据之间有逗号分隔,列表基本上可以包含很多数据类型,下面就是一个典型的列表:

list = [1,2.2,'ok',bool]

在上面的列表中存储了数据(整型、浮点型、字符串、布尔值),包含我们下面看见的几种集合类型都是可以当作列表的子元素的。

当然也可以从列表中取出数据,因为列表是有序的,所以我们可以通过索引从0开始进行取数据,你需要注意的是所有可以用索引进行得到值的都是从0开始,比如下面的代码取出了列表第一个和第三个数据。

list = [1,2.2,'ok',bool]
list[0]  # 1
list[2]  # 'ok'

除了0开始的整数,还可以用负数,比如-1表示倒数第一个值,-2表示倒数第二个值,以此类推。

list = [1,2.2,'ok',bool]
list[-1]  # bool
list[-2]  # 'ok'
列表切片

除此之外,列表还支持切片的功能,就相当于一块肉,我们通过菜刀把这块肉切成一片一片的,方便我们炒菜(方便处理)。切片同样和索引一样存在列表变量名后的[]里面,大概语法如下:

list[起始位置:截至位置(但不包括本位置的值):步数]

下面的代码我获取了从第一个到第四个的值(但不包括第四个值):

list = [1,2.2,'ok',bool]
list[0:3]  # 1,2.2,'ok'

也可以设置步数,作用就是比如我们设置2,就会每隔两个值就返回一个值:

list = [1,2.2,'ok',bool]
list[0:4:1] #[1, 'ok']

当然同样可以设置负数,可以自行测试!

列表查询

列表查询可以用于判断一个值是否在列表当中,通过innot in来进行,其中in表示一个值是否包含在列表当中,如果包含则返回True,反之返回False,而not in则是对in的结果进行取反,比如下面的代码则表示了判断值2.2是不是存在于列表当中以及对in结果进行取反。

list = [1,2.2,'ok',bool]
print(2.2 in list) #返回 True
print(2.2 not in list) #返回False

元组

元组是有序不可变的数据集合,并且用一对()来进行表示,元素之间逗号分隔,当你定义好元组那一刻,元组里面的所有数据就不能够进行修改了,你只能读取里面的数据而无法修改和添加数据,比如下面,我定义了一组元组后,我通过修改第一个元素产生错误:

tple = (1,2,3,4)

tple[0] # 1

tple[0] = 'm'
"""
Traceback (most recent call last):

  File "<ipython-input-21-cae8ab2b1ade>", line 1, in <module>
    tple[0] = m

TypeError: 'tuple' object does not support item assignment

在上面这一行就会明显提醒你tuple对象不支持修改。
"""

集合

集合是可变无序的数据集合,并且用一对{}表示,元素之间逗号分隔,还需要特别注意的是集合是一个包含唯一元素的可变无序集合数据类型,集合的一个用途是快速删除列表中的重复项 ,集合是无序的,既然是无序那么就没有办法进行索引,我们只能通过两个方法进行添加和删除数据并返回,添加通过add()方法,删除是pop()方法,添加是随机插入到集合当中的任何位置,而删除是从集合当中随机取出一个值删除并返回。比如下面的操作:

coll = {1,2,3,4,5,5}
print(coll)  # {1,2,3,4,5} 这里只返回了一个5,另外一个5已经被去重了
coll.add(7)  # {1,2,3,4,5,7} 
# 添加一个元素,虽然看着像有序列表,但是千万不要试图把集合用作有序集合来使用。
coll.pop() # {2,3,4,5,7}

集合同样支持innot in操作,来判断值是否包含在集合当中。

字典

字典是可变无序的数据集合,其中存储的是键值对的形式进行存储的,比如下面的代码就是一个字典:

dic = {
    'a': 1,
    'b': 2,
    'c': 3
}

字典的键可以是任何不可变类型,例如整数或元组,而不仅仅是字符串。甚至每个键都不一定要是相同的类型!我们可以使用方括号并在括号里放入键,查询字典中的值或向字典中插入新值。

dic = {
    'a': 1,
    'b': 2,
    'c': 3
}

dic['a'] # 1

如何你需要在字典中查询一个键是否存在,可以使用innot in,根据返回的TrueFalse可以做出相应的判断,如果还需要查询值,除了可以通过上面的['key']之外,还可以使用get()方法进行查询,如没有找到相应的键返回就返回None类型值,表示没有值:

dic = {
    'a': 1,
    'b': 2,
    'c': 3
}

dic.get('a') # 1
dic.get('dd') # None

《Python数据集合》留言数:0

发表留言