python入门之容器解析

一.般把四个list,set,tuple,dict复合数据类型叫做容器,这些容器都是开辟在堆中的,是python提供用来存放大量数据的一种数据结构。
二.列表(list):是按照一定的线性顺序,排列而成的数据项的集合,是一种线性表,是python底层基于双向链表实现的。由大量的节点组成,每一个节点都可以存储数据。所以列表可以存储大量的数据
1.python中如何使用列表,定义列表:

①调用系统的一个全局函数list()

a=list() #创建了一个空列表
在这里插入图片描述
a=list([n1,n2,n3…nn]),创建列表并赋值
在这里插入图片描述
②可以利用弱数据类型语言的特点来创建列表
b = [1,2,3,4,5]
在这里插入图片描述
2.访问列表中的元素
通过下标访问;(下标从0开始,注意下标不能越界)

赋值:列表[下标] = 新值

在这里插入图片描述
3.遍历元素

for 变量 in 容器;
while循环:    index = 0  
				    while index < len(a) :
							print(a[index])
							Index += 1

4.列表的长度问题:

全局函数len  len(列表名)

列表的本质是一个对象:想扩展列表,python提供了大量的列表方法,调用就可以完成需要的功能。
在这里插入图片描述
5.列表的常用方法:

1>.append:能够在列表末尾添加一个新的元素
2>.clear:会清除列表中的所有元素
3>.copy:复制列表(浅拷贝)

复制和赋值的区别:复制会在堆中再开辟一个内存用来存放复制出来的列表,该列表和原来的列表不同步;而赋值的列表会和原列表同步;

4>.count:返回某个数字的重复次数(统计某个元素在列表中的个数)

5>.index:查询(返回)元素在列表中第一次出现的下标位置,如果列表中不存在该元素,则抛出异常
6>.insert:指定要插入的元素的位置,eg:a.insert(2,"xiaozhan")
7>.remove:移除,移除的是对应的元素值,如果列表中不存在该元素,      则抛出异常
8>.pop:通过下标移除元素,默认没有下标的话,移除的是最后一个元素
9>.reverse:倒叙,反转元素的顺序
10>.sort:排序,(主要针对数据)按照数值大小排序
11>.extend:扩展,a.extend(b),合并列表

三.集合(set)
1>定义:

使用全局函数 set()

S = set({1,3,5,9,5}) (在python中使用“{}”定义的不一定就是set,也有可能是字典,想要是set,就要在{}里面写值)
在这里插入图片描述
2>集合的特点:

元素唯一,且元素无序,所以不能用下标去访问

3>集合的常用方法:

①add:在集合末尾添加元素
②clear:清除
③difference:求差集
④intersection:求交集
⑤union:并集
⑥pop:随机移除
⑦remove:移除元素
⑧discard:集合中有要移除的元素,则移除,没有移除的元素,则没有变化,不报错

四.元组(tuple):表示固定的,不变的值(不可变类型),类似于常量
1>定义:

使用()表示   t = tuple(()),

注意:a=(),type(a)是元组,但是a=(1),type(a)=int,解决这个问题的方法是:a = (100,)原因是python解释器将元组当成一个数字对待()是数学上的含义
在这里插入图片描述
2>常用方法

扫描二维码关注公众号,回复: 10638312 查看本文章
  count ,index

注意:元组是不可变类型,意味着元组中的值定义好后,再无法修改,但是,如果元组的元素是可变类型,那么该元组是可变的 eg:t = (1,2,3,6,[1,3,6,8]),下标为4的元素是列表,是可变的,所以,t[4] = [1,2,36,8,52]
五.字典():结构是:二维表,key必须是字符串,values可以是任意类型
1>定义:

d1 = {}     d1 = dict() d2 = dict({"name":"zhao","age":17})

在这里插入图片描述
2>访问:
在这里插入图片描述
d2[“name”],通过key来确定值,当key相同时,会覆盖前面的值;如果key不存在,则新增这个key
3>常见的方法:

①get:通过key或者key对应的值,如果没有这个key,则返回none,表示没有这个值
②keys:返回所有的key
③values:返回所有的值
④items:成对返回键值对
⑥pop:通过key,删除对应的键值对,注意:如果该键值对不存在,则抛出异常
⑦popitem:按照后进先出(LIFO)的方法去移除键值对,没有参数。

(LIFO:后进先出法是指假定后入库的存货先发出,据此计算发出存货成本的方法。采用后进先出法时,每批发出存货的成本,按存货中最后入库的那批单价计算,如果发出存货的一批数量超过最后入库的那一批数量,超过部分依次按上一批入库的单价计算。)
六.字典迭代问题:
1>对key进行迭代
在这里插入图片描述在这里插入图片描述

①for  k in d2 :                     
	Print(k)
②for k in d2.keys():
	Print(k,d2[k])

2>对value进行迭代
在这里插入图片描述

for k in d2.values():
	Print(k)

3>对key/value一起迭代
在这里插入图片描述

for (k,v) in d2.items() :
	Print(k,v)
发布了17 篇原创文章 · 获赞 2 · 访问量 371

猜你喜欢

转载自blog.csdn.net/qq_44487069/article/details/104427921