我们在python学习中,我们会使用到容器,那么就简单介绍一下容器吧。
Python的内置容器:
|-- list (列表) #可变数据类型
|-- set (集合) # 可变数据类型
|-- tuple (元组) #不可变数据类型
|-- dict (字典)
什么是容器:
容器:容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。
- 容器是一种可以包含其他类型对象(如列表、元组、集合、字典等)作为元素的对象;
- 容器仅仅只是用来存放数据的
list(列表):
列表是python官方提供的内置的线性表底层
实现:基于双向链表结构实现
定义列表:
age = [] # 中括号在python代表的就是列表
age = [18, 16, 20, 30]
列表的定义也可以用list来呈现出来。如:
names = list()
names = list("张三", "李四", "王五")
操作列表中的元素:
元素:element:
通过下标可以访问元素
列表[index]
index:从0开始,最大值: 列表的总长度 - 1
获取列表的长度:
len(Iterable) # 返回这个可迭代对象的长度
ls = [1,2,5,9,4] #列表
print(len(ls)) #获取列表的长度
#结果为 5
列表的遍历:
for循环
for 临时变量 in Iterable:
# 每一次得到的元素会放在临时变量中
while循环:
列表的常见方法:
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
这些方法都是用来操作列表的
CRUD(增删改查)
|-- append(ele) # 在尾部追加新的元素
|-- insert(index, ele) # 在特定的位置添加元素
|-- extend(list) # 合并列表
|-- clear() # 清空列表
|-- remove(ele) # 删除指定元素
|-- pop() # 删除最后一个元素
|-- index(ele) # 返回查找到的一个元素位置
|-- count(ele) # 返回元素的数量
|-- reverse() # 翻转列表顺序
|-- sort() # 排序
|-- copy() # 拷贝、复制,对象拷贝,对象浅拷贝
set(集合):
python中的集合与高中所学的集合相同
哈希表(hash table):
哈希算法的实现:能够将任何事物映射为一个特定的值
特点: 1、元素不能重复
2、无序的
定义set:
s = set(Iterable)
ss = {1,2,3,4,} # {}中必须有值,如果没有值,则默认是dict,不是set
注意:set的元素无法通过下标访问
set的常见方法:
['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection','intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference',
'symmetric_difference_update', 'union', 'update']
|-- add(ele) # 添加元素
|-- clear() # 清空列表
|-- copy() # 浅拷贝
|-- difference(set) # 差集
|-- intersection(set) # 交集
|-- union(set) # 并集
|-- update(set) # 合并两个集合
|-- discard(ele) # 移除元素,如果该元素不存在,则什么都不做
|-- remove(ele) # 移除元素,如果该元素不存在,则抛出异常
|-- pop() # 随机移除一个元素
注意:set没有办法使用while 遍历数据,只能使用for循环
tuple(元组):
是一种不可变数据类型
基本数据类型也是不可变数据类型
不可变数据类型中如果存在了可变数据类型,这个子对象是可以发生变化的
所以表示的就是的固定的值,固定的一组值,可以通过下标来访问
注:元组的元素一旦定义,就无法修改!!!
tuple的常见方法:
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
|-- count #统计元素的数量
|-- index #返回查找到的一个元素位置
dict(字典):
字典和集合一样,底层实现就是一个hash table(哈希表)
最终的表示方式:
键值对:一个唯一键对应一个值,一一对应的关系
python中字典:
d = {}
d = {"id": 2, "name": "小明", "age": 18}
dd = dict({"id": 2, "name": "小明", "age": 18})
获取字典中的值:
d[key] # 就可以获取字典中,key对应的值,如果不存在,则抛出异常
字典对象.get(key,default) # 就可以获取字典中,key对应的值,如果不存在,则返回None
字典对象的常见方法:
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
|-- clear() # 清空
|-- copy() # 复制
|-- get(key, [defaul]) #
|-- setdefault() # 设置一个默认值
|-- keys() # 获取所有的键
|-- values() # 获取所有值(返回为列表)
|-- items() # 返回键值对
|-- pop(key) # 通过key,删除键值对
|-- popitem() # 移除键值对
|-- update() # 合并字典 等价于 {**对象, **对象}
|-- fromkeys(iterable) # 生成一个新的字典对象
遍历字典:
for i in 对象.keys():
print(i, 对象[i])
for i in 对象:
print(i, 对象[i])
for item in 对象.items():
print(item[0], item[1])
for (key, value) in 对象.items():
print(key, value)
for key, value in 对象.items():
print(key, value)
以上就是关于python容器的简单介绍,希望能对大家有帮助,如有不足,希望大家能给予宝贵意见,如有侵权,请联系!