内置容器
一、列表 - 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() ---> 以元组的形式随机删除并返回一对键值对
。。。
网友评论