数据结构
数据结构就是指从计算机存储,组织数据的结构
常用的四种数据结构
列表(List)
元组(Tuple)
字典(Dictionary)
集合(Set)
列表(List)---类比Javascript中的数组
列表中的数据按顺序排列
列表有正序(0
开始)与倒序(-1
开始)两种索引
列表可存储任意类型数据,且允许重复
列表的创建
变量名=[元素1,元素2,...]
list = ['a','b','c','d','1']
取值:
list[0]
,list[-1]
,list[0:5]
,单个取值及范围取值
注意:[0:5]在python中取值是左闭右开
len(list)
z可获取列表长度
列表的index函数用于获取指定元素的索引值(只会返回第一次出现的索引)
zhaoliu_index = list.index('赵柳')
for...in 语句
for...in
语句专门用于遍历列表,元组等数据结构
for 迭代变量 in 可迭代对象
循环体
列表的反转与排序
list.reverse()
反转列表
list.sort()
默认升序排列
list.sort(reverse=True)
降序排列,True
为降序排列
列表的新增,修改,删除
用法 | 描述 |
---|---|
list.append(新元素) |
在列表末端追加新元素 |
list.insert(索引,新元素) |
在指定索引插入新元素 |
list[索引] |
更新指定索引位置数据 |
list[起始索引:结束索引] |
更新指定范围数据 |
list.remove(元素) |
删除指定元素 |
list.pop(索引) |
按索引删除指定元素 |
列表的其他用法
list.count('某元素')
计算列表中某元素出现的次数
list.extend(列表)
类似append,追加数组时不会变成二维列表
append
将整个列表追加到末尾,extend
是将列表中的元素追加到原始列表末尾
in
运算符用于判断数据是否在列表中,存在返回True
,不存在返回False
copy()
用于复制列表(改变内存形式的,深度拷贝)
clear()
用于清空列表
字典(js中的json数据)
字典(Dictionary)是python中的内置数据结构
字典非常适合表达结构化数据
字典的特点
字典采用
键(key):值(value)
形式表达数据
字典中key
不允许重复,value
允许重复
字典是可以修改的,运行时动态调整存储空间
创建字典的两种方式
使用
{}
创建字典
使用
dict
函数创建字典
利用dict函数创建字典例子
dict1 = dict(name='王八',sex='男')
dict2 = dict.fromkeys(['name','sex'],default)
,default
为value
默认值,省略不写时默认值为None
字典的取值
方法1:
dict1['name']
,dict1['key']
方法2:dict1.get('name')
,dict1.get('key')
两种方式的区别:
get
方法可以用于key值不存在的情况,并且可以设置默认值
dict1.get('age',24)
,如果dict1
中不存在age
这个key
就会取后面的24
,如果没有设置默认值24
,则为None
判断字典中是否存在某个
key
,可以用成员运算符in
,not in
'name' in dict
存在返回True
,否则False
字典的遍历
for key in dict:
for key,value in dict.items():
items()
表示返回的是每一个键值对
字典的更新与删除
dict['name'] = '张三'
重新赋值即可 只能更新一个
dict.update(salay=1200,welfare = 200)
,update
函数可以一次更新多个
字典的新增与更新完全相同,秉承有则更新,无则新增
字典的删除操作
dict.pop('key')
删除指定的key value
最常用
dict.popitem()
删除最后一个key value
返回的是被删除的数据
dict.clear()
清空字典。删除字典中的所有数据
字典的常用操作
为字典设置默认值
字典的视图
字典的格式化输出
设置默认值
setdefault
,如果某个key
已存在则忽略,如果不存在则设置。
dict.setdefault('age',22)
获取字典的视图
keys
代表获取所有的键
values
代表获取所有的值
items
获取所有的键值对
利用字典格式化字符串 format_map(dict)
emp1_str = '姓名:{name},年龄:{age}'.format_map(dict)
散列值
字典也称为‘哈希(hash)’,对应‘散列值’
散列值是从任何一种数据中创建数据‘指纹’
python中提供了hash()
函数生产散列值
h1=hash('abc')