Data area:数据区 静态的不变的值
Code area:代码区
Stack栈:申请变量 先进后出FILO 后进先出OIFO 栈的空间很小 Heap 堆:容器其实就是对象,对象是存储在堆中的 堆的空间很大
1、可以存放多个数据
2、可以有重复的数据
3、数据是有序的 底层是基于双向链表实现的
1、可存放多个数据
2、不能存放重复的数据
3、存放的数据是无序的
1、可以存放多个数据
2、可以存放重复的数据
3、存放的数据是有序的
4、存放的数据是固定的,不能发生变化的
1、存放的是key:value键值对数据
2、key是不能重复的,vlaue可以重复
3、存放的数据没有顺序
列表是一种线性表,线性表是有顺序的表,因为有序,所以有下标;且可以存储相同的数据
线性表的实现:数组(array)、链表(list)、栈(stack)、队列(queue),python中没有数组
1、借助若数据类型语言的特点:直接赋值
2、全局函数list
1、element 容器中存储的值,列表中元素如何访问或者修改,可以利用下标来访问元素或者修改元素 ls[下标] 下标从0开始 2、获取list中元素的个数 len的全局函数 可以接收可迭代对象 len(ls) # 获取元素的个数
user [‘aaa’, ‘bbb’, ‘ccc’]
len(user) 3
for循环就是用于迭代可迭代对象的 while循环,需要一个索引,从0开始
[‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’,‘pop’, ‘remove’, ‘reverse’, ‘sort’]
len(list)可以获取列表中数据的数量
max(list) 可以获得列表中最大的数据
min(list) 可以获得列表中最小的数据
list(seq) 将一个序列数据转换成列表
add’, ‘clear’, ‘copy’, ‘difference’, ‘difference_update’, ‘discard’, ‘intersection’, ‘intersection_update’, ‘isdisjoint’, ‘issubset’, ‘issuperset’, ‘pop’, ‘remove’, ‘symmetric_difference’, ‘symmetric_difference_update’, ‘union’, ‘update’]
|-- add(item) # 添加元素 |-- clear # 清空集合 |-- copy(set) # 复制对象(浅拷贝对象) |-- pop() # 随机移除元素 |-- remove(item) # 删除集合元素 |-- discard # 尝试着移除元素 如果元素是成员,则将其从集合中移除。如果元素不是成员,则不执行任何操作。 |-- intersection # 交集 |-- difference # 差集 |-- union # 并集
#常用方法的简单演示,详细的使用在习题中会详细说明
name = {“eichi”,“yichen”,“yichentong”} name {‘yichen’, ‘eichi’, ‘yichentong’}
name.add(“haha”) name {‘yichen’, ‘haha’, ‘eichi’, ‘yichentong’}
name.add(123) name {‘yichen’, ‘eichi’, ‘yichentong’, ‘haha’, 123}
user = name.copy() user {‘yichen’, ‘yichentong’, 123, ‘haha’, ‘eichi’}
user.pop() ‘yichentong’
user.pop() ‘yichen’
user {123, ‘haha’, ‘eichi’}
user.remove(“eichi”) user {123, ‘haha’}
user {123, ‘haha’}
user.discard(123) user {‘haha’}
user {‘haha’}
name {‘yichen’, ‘eichi’, ‘yichentong’, ‘haha’, 123}
name.intersection(user) {‘haha’}
name.difference(user) {‘yichen’, 123, ‘eichi’, ‘yichentong’}
name.union(user) {‘yichen’, ‘yichentong’, 123, ‘haha’, ‘eichi’}
#全局函数的解释 Help on class tuple in module builtins:
class tuple(object) | tuple(iterable=(), /) | | Built-in immutable sequence. | | If no argument is given, the constructor returns an empty tuple. | If iterable is specified the tuple is initialized from iterable’s items. | | If the argument is a tuple, the return value is the same object. |
#翻译一下 有关模块内置中的类元组的帮助: 类元组(对象) |元组(iterable=,/) |内置不可变序列。 |如果没有给出参数,则构造函数返回一个空元组。 |如果指定了iterable,则元组将从iterable的项初始化。 |如果参数是元组,则返回值是相同的对象。
与列表、集合类似,采用for循环来进行遍历
字典是一种键值对形式存储的数据结构,键是唯一的,在python中键只能存储字符串类型
语法结构:
字典变量名称={“变量 1”:”值 1”, “变量 2”:”值 2”, “变量 3”:”值 3”,}
定义的时候以键值对的形式定义存在,相当于给每个值取了名字
help(dict) Help on class dict in module builtins:
class dict(object) | dict() -> new empty dictionary | dict(mapping) -> new dictionary initialized from a mapping object’s | (key, value) pairs | dict(iterable) -> new dictionary initialized as if via: | d = {} | for k, v in iterable: | d[k] = v | dict(**kwargs) -> new dictionary initialized with the name=value pairs | in the keyword argument list. For example: dict(one=1, two=2)
#翻译一下
帮助(dict) 关于模块内置中的类dict的帮助: 类dict(对象) |dict()->新建空字典 |dict(映射)->从映射对象的 |(键,值)对 |dict(iterable)->新字典初始化为通过: |d={} |对于iterable中的k,v: |d[k]=v |dict(**kwargs)->用name=value对初始化的新字典 |在关键字参数列表中。例如:dict(one=1,two=2)
常见方法: ‘clear’, ‘copy’, ‘fromkeys’, ‘get’, ‘items’, ‘keys’, ‘pop’, ‘popitem’, ‘setdefault’, ‘update’, ‘values’] |-- clear() #清空字典 |-- copy(dict) #复制对象(浅拷贝对象) |-- get(key,default)#用于返回键对应的值,参数写的是键,第二个参数,用于给一个默认值,返回的是默认值 |-- keys() #返回键 |-- values() #返回值 |-- items() #返回的是元组 |-- pop(key) # 通过key,移除对应的键值对 |-- popitem # LIFO的顺序 LIFO:last in first out 后进先出 FIFO:firt in first out python无队列 先进先出
元组 Tuple 是存放固定的数据 集合 Set 中的数据插入和遍历的时间,随数据增多而变慢 列表 List 中的数据插入和查询的时间,随数据的增多而变慢 字典 Dict 中的数据插入和查询的速度非常快,不会因为数据太多而变慢 元组、集合和列表占用内存较少,字典占用内存较多,字典是一种通过占用空间来换取 操作速度的一种数据类型。