Python之路~~~~~容器

本文深入介绍了Python中的四种主要容器类型:列表、集合、元组和字典。列表作为基于双向链表实现的线性表,提供了丰富的操作方法,如append、insert和sort等。集合基于哈希表,支持唯一元素和多种集合运算。元组是不可变类型,而字典则以键值对形式存储,提供了快速访问和修改值的功能。通过对这些容器的理解,可以更高效地组织和操作数据。
摘要由CSDN通过智能技术生成

容器

容器的概念:

1、什么是容器,为什么学习容器

容器:可以存放多个元素的一种数据类型

补充变量的无法存储大量数据的缺陷

2、python也提供容器

  • 列表(list)
  • 集合(set)
  • 元组(tuple)
  • 字典(dict)

列表------(list)

  • 线性表:
  • ​ 数组:数组是连续内存的结构,python是没有数组的
  • ​ 栈:先进后出
  • ​ 队列:先进先出
  • ​ 链表:
  • ​ 单向链表:只能查询下一个节点
  • ​ 双向链表:有头结点和尾节点,可以查前后节点
  • ​ python的列表这种容器就是基于双向链表实现的

列表的定义:

​ 直接由弱数据类型语言决定,直接将值赋给变量:

​ 如:ls = [2, 3, 4, 5]

​ 全局函数 list

​ ls = list ( )

​ ls = list ([1, 2, 3, 4, 5])

如何访问元素:

​ 使用下标来访问, 注意下表是从0开始的

求列表的长度:

​ 全局函数: len(容器) #返回的是容器的长度

列表中常见的方法:

[‘add’, ‘class’, ‘contains’, ‘delattr’, ‘delitem’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘getitem’, ‘gt’, ‘hash’, ‘iadd’, ‘imul’, ‘init’, ‘init_subclass’, ‘iter’, ‘le’, ‘len’, ‘lt’, ‘mul’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘reversed’, ‘rmul’, ‘setattr’, ‘setitem’, ‘sizeof’, ‘str’, ‘subclasshook’, ]

[‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

append()     #向尾部追加

insert() #向指定的位置追加元素

sort() #排序 (一般用来排序数字)

index() #返回元素第一次在列表中出现的位置(如果没有这个元素则跑出异常)

reverse() #将列表元素翻转

remove() #移除某元素(不是下标!!)

count() #统计元素个数

clear() #清除元素

copy() #浅拷贝(重新开辟一片空间或内存,用来拷贝) 而(=)赋值的时候是只赋地址值

extend() #合并列表

pop() #删除最后一个元素,并返回这个元素

集合------(set)

集合(set):

  • 常见的一个集合
  • ​ s = set( ) # 使用全局函数来创建一个集合
  • ​ s = set( { 1, 3, 4, 5} ) # 创建集合,并赋值
  • ​ s = { } # 如果使用的是空的{}来创建一个对象,该对象是字典,并不是集合
  • ​ s = {元素} # {}至少要有一个元素,才是集合
  • 集合的底层基于hash表实现的
  • ​ 不能重复的,也就意味着集合中的元素都是唯一的
  • ​ 无序

[‘and’, ‘class’, ‘contains’, ‘delattr’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘iand’, ‘init’, ‘init_subclass’, ‘ior’, ‘isub’, ‘iter’, ‘ixor’, ‘le’, ‘len’, ‘lt’, ‘ne’, ‘new’, ‘or’, ‘rand’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘ror’, ‘rsub’, ‘rxor’, ‘setattr’, ‘sizeof’, ‘str’, ‘sub’, ‘subclasshook’, ‘xor’]

集合的常见方法:

[‘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)

元组(tuple)

  • 定义:
  • ​ 通过弱数据类型
  • ​ t = (元素…)
  • ​ tuple全局函数
  • ​ tt = tuple()
  • ​ tt = tuple((元素…))
  • 通过下标来访问元素:
  • 元组的特点:
  • ​ 元组是一个不可变类型,元组的元素一旦定义下来,则无法改变
  • 注意:
  • ​ 虽然元组不可变,如果元组内部元素是可变类型,那么该元组就可变!!

元组的常见方法:

  • index
  • count

字典------(dict)

字典(dict)

键值对形式存储的

  • 定义:
  • ​ d = {“name”: “zhangsan”, “age”: “18”, “gender”: “男”}
  • ​ d = dict({“a”:100. “b”: “200”})
  • 如何访问值:
  • ​ 通过key来访问对应的值
  • ​ 字典对象[key] #放回key对应的值
  • 常见的方法:
  • clear
  • copy
  • get #获取键相对应的值,如果没有,返回None
  • keys #返回所有的键
  • values #返回所有的值
  • setdefault #返回默认值
  • items #返回一个键值对 (我们可以用它来遍历字典)
  • pop (key) #通过键来删除我们的键值对
  • popitem #移除一个键值对,移除的规则是LIFO(last in first out)后进先出 FIFO先进先出
  • 字典的遍历:

在python中,所以可以使用for in 迭代元素的对象,都是可迭代的对象(iterable)

内存模型

堆和栈的区别:
在这里插入图片描述

栈里面存的是地址,地址指向的是堆中的一片内存

堆才有动态开辟内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值