python 容器(列表,元组,字典,集合)

1、什么是容器,为什么学习容器
容器:可以存放多个元素的一种数据类型
补充变量的无法存储大量数据的缺陷

2、python也提供容器
|- 列表(list)
|- 集合(set)
|- 元祖(tuple)
|- 字典(dict)

列表–list
线性表:
数组:数组是连续内存的结构, python是没有数组
栈: 先进后出,后进先出
队列:先进先出,后进后出
链表:
|-- 单向链表:节约内存
|-- 双向链表:

python的列表这种容器就是基于双向链表实现的

|-- 列表的定义
	|-- 由若数据类型语言决定,直接将值赋给变量
		如: ls = [2, 3, 4, 5, 56]
	|-- 全局函数list
		ls = list()
		ls = list([1,2,3,4,5,5])	
	# 容器中的每一个,我们叫做元素
|-- 如何访问元素
	使用下标来访问,注意下标是从0开始
	可以通过下标访问元素
	也可以通过下标来修改元素值

|-- 求列表的长度
	全局函数 len(容器)	# 返回容器的长度

|-- 如何遍历容器
	while
		index = 0
		while index < len(ls):
		     print(ls[index])
		     index += 1
	for循环:
		for i in ls:
			print(i)

|-- 列表中的常见方法
	['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

	|-- append()	# 向列表尾部追加元素
	|-- insert()	# 向指定的位置追加元素
	|-- sort()	# 排序(一般用来排序数字)
	|-- index()	# 查找元素第一次在列表中出现的位置,如果没有这个元素,则抛出异常
	|-- reverse()	# 将列表元素顺序翻转
	|-- remove()	# 通过元素来移除元素,注意,如果元素不存在,则抛出异常
	|-- count()	# 统计元素个数
	|-- clear()	# 清除元素
	|-- copy()	# 浅拷贝对象,是在堆内存中进行对象拷贝的
	|-- extend	# 合并列表       ls1.extend(ls2)    
	|-- pop()	# 删除最后元素,并返回这个元素

内存模型:
栈(stack):
先进后出,后进先出
堆(heap):

队列:先进先出,后进后出

集合(set):
|-- 常见一个集合
s = set() # 使用全局函数set来创建一个集合
s = set({1,3,4,5}) # 创建集合,并赋值
s = {} # 如果使用空的{}来创建一个对象,该对象是字典,并不是集合
s = {元素} # {}至少要有一个元素,此时才是集合

|-- 集合的底层基于hash表实现的
	不能重复的,也就意味着集合中的元素都是唯一的
	无序
|-- 常见方法:
	['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
	
	|-- clear		#
	|-- remove		#
	|-- copy		# 
	|-- add			# 增加元素
	|-- difference		# 差集
	|-- intersection	# 交集
	|-- union		# 并集
	|-- update		# 更新集合,合并集合
	|-- discard		# 移除元素,但是如果不存在,则不做任何操作

元组(tuple)
|-- 定义
通过若数据类型
t = (元素…)
tuple全局函数
tt = tuple()
tt = tuple((元素…))

|-- 通过下标来访问元素
	
|-- 元组的特点
	元组是一个不可变了类型,元组的元素一旦定义下来,则无法改变
	
注意:
	虽然元组不可变,如果元组内部元素是可变类型,那么该元组就可变!!

|-- 常见方法
	|-- index
	|-- count

字典(dict)
键值对形式存储的
|-- 定义
d = {“name”: “liujianhong”, “age”: 16, “gender”: “男”}
d = dict()

|-- 如何访问值
	通过key来访问对应的值
	字典对象[key]	# 返回key对应的值,如果没有,抛出异常

	字典对象[key] = 新值
	字典对象[新key] = 新值		# 增加新的键值对

|-- 常见方法
	['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
	|-- clear
	|-- copy
	|-- get	   # 和字典对象[key]类似,获取键对应值,注意,如果没有该键,返回None
	|-- keys	# 返回所有的键
	|-- values	# 返回所有的值
	|-- setdefault	# 设置默认值
	|-- items	# 返回一个键值对
	|-- pop(key)	# 通过key删除键值对
	|-- popitem	# 移除一个键值对,移除的规则是LIFO(last in first out)

|-- 字典的遍历:
	for k in d.keys():
		print(k, d.get(k))

	for k in d:
		print(k, d[k])

	for k,v in d.items():
		print(k, v)

LIFO:后进先出 栈
FIFO:先进先出 队列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值