内置容器

作者: Shun2018 | 来源:发表于2018-03-31 07:50 被阅读0次

内置容器

一、列表 - list

初始化一个list:

li = [1, 2, 3, 4]

li = list(1, 2, 3, 4)

使用内置help函数查看li的所有或者具体某个方法的帮助信息:

help(li)

help(li.append)

list对象常用方法(使用help查看具体用法):

增加操作:append、extend、insert

删除操作:clear、pop、remove

修改操作:reverse、sort

查询操作:count、index

复制操作:copy(赋值是引用操作,copy是深拷贝操作,返回对象的id跟源id不同


*备注:使用id(对象名)可以查看对象内存中的id是多少,如果两个对象id相同,则属于同一对象。

常用操作:

1、下标操作:li[0] = 10 对下标为0的元素进行赋值操作

2、切片操作(返回新对象,不修改源对象):

  li[开始索引:结束索引:步长] 返回一个新list,包含开始索引,不包含结束索引,默认步长为1

      A) 省略开始索引,表示从头开始切片;

      B) 省略结束索引,表示切片到结尾;

      C) 开始索引和结束索引同时省略,li[:]跟copy效果一样,效率比copy高一些;

      D) 结束索引位负数,li[4, -2],表示从4号索引开始,切片到倒数第2个元素(不包含)

      E)如果步长为负数,表示逆序切片,li[::-1]表示逆序排列并返回一个新的list对象

二、元组 - tuple

初始化一个元组:

t = (1, 2, 3, 4)

t = tuple([1, 2, ,3, 4])


*备注:tuple跟list很相似,本质的区别在于tuple不可变。

tuple对象不可变,具有的操作主要是查询操作:

查询操作:count、index

unpacking 

a, b = (1, 2) 将元组或列表里的内容拆解开,分别给a赋值1,给b赋值2

packing

t = 1,2 将1和2组合成一个tuple对(packing默认生产元组)

unpacking 在 python3中,新增功能如下:

自动识别参数个数,进行相应拆解赋值操作

x, *y  = (1, 2, 3, 4)  -->  x = 1,  y = [2,  3,  4]

*x, y  = (1, 2, 3, 4)  -->  x = [1, 2,  3],  y = 4

x, *_,  y  = (1, 2, 3, 4)  -->  x = 1,  y = 4(取一头一尾两元素进行赋值,*_相当于占位中间需要舍弃的元素)

x, *_,  y, z  = (1, 2, 3, 4, 5)  -->  x = 1,  y = 4,  z=5

x, (y , z) = (1, (2, 3))  -->  x = 1,  y = 2,  z=3 只要左右两边能对称,都能unpacking

x , y = y,  x  实现交换变量,不在需要中间量

三、集合:非线性、元素唯一、元素可hash的

集合的初始化:

s = set({1, 2, 3})

集合的常用操作:

增加操作:add、update

删除操作:remove、discard、clear、pop(随机的弹出一个元素)

集合运算:union、intersection、difference、symmetric_diffrence(跟数学上的意义相同)

集合判断:issubset、issuperset、isdisjoint

四、字典:无序、KV结构、value值可任意、key唯一、key必须是可hash对象

字典的初始化:

d = {'a': 1, 'b': 2}

d = dict()

字典的常用操作(字典内的元素主要通过key来访问):

访问key = ‘a’的元素:d['a']  --->  返回值为1(使用下标并赋值,就是为集合添加或修改元素)

d.keys() --->    返回一个dict_keys的可迭代对象,包含所有key值的一个set

d.values() --->    返回一个dict_values的可迭代对象,包含所有value值的一个set

d.items() --->    返回一个dict_items的可迭代对象,包含所有key和value的一个set

d.pop(k[,d])  --->  删除指定key值对象,默认值可选(key不存在时返回给定的默认值)

d.popitem()  --->  以元组的形式随机删除并返回一对键值对

。。。

相关文章

网友评论

    本文标题:内置容器

    本文链接:https://www.haomeiwen.com/subject/lonwcftx.html