python数据结构之容器
数据结构在计算机科学中是指的是使用计算机对数据进行存储、组织的方式。python中容器(container)包含序列、映射,序列以索引(index)标注元素,例如序列、元组等;映射以键(key)标注元素,例如字典。
- 列表(list)
- 元组(tuple)
- 字符串(string)
- 字典(dict)
python中索引的规则为由0开始(0,1,2,3...),这与日常计数习惯是不同的。
python中索引可以倒数,即索引系列....n-2,n-1,n,可以记为...-3,-2,-1
列表 list
-
列表是一种序列。
-
列表中的值可以进行修改,所以列表不可用作字典的键等不可修改的场合。
-
列表可以嵌套,即列表以列表为元素,可以用于二维或更高维数组的表示。
-
创建列表
- 创建空列表
examp_list = []
- 由字符串生成列表
examp_list = list("string")
逆操作`"".join(examp_list) - 指定个数的相同元素
examp_list = [42]*100
- 创建空列表
-
切片(slicing)
examp_list[begin : end : step]
- 切片是非常有效的一个运用,可以起点、终点、步长截取列表中的某个子集。
- 起点或终点省略则取该方向的边界值,步长省略默认为1
- 切片也可以用于为序列指定范围赋值 examp_list[2:4] = [value]
- 成员资格(in) 判断是否为序列的值
- 内建函数(len/min/max/del) 取序列的个数、最大值、最小值、删除元素
- 列表方法
- append 在序列末尾添加元素
- count 统计序列中指定元素的个数
- extend 在列表末尾添加另一个序列中的多个值
- index 查找指定值匹配项的索引位置
- insert 在指定位置插入指定值
- pop 移除并返回序列中指定值,默认为末尾元素
- remove 移除列表中指定值的第一个匹配项
- reverse 列表中元素反向存放
- sort 对列表排序
元组 tuple
- 元组是一种序列
- 元组中的值不可以修改,所以元组常用于字典键值等不应修改的场合。
- 元组与列表相似,创建时使用(),若创建只含一个元素的元组,需添加一个,,即:
t = (1,)
- 列表各种操作,除会改变元组元素的操作外,都适用于元组(毕竟元组是不可以修改的)。
字符串 string
- 字符串是一种序列。
- 字符串元素与元组相类似,不可改变。
- 字符串的格式化与C语言中基本相似不在此赘述。
- 字符串方法
- find 从字符串中查找指定子集并返回子集最左端索引。
- split 按指定的分隔符,把字符串分割成列表;join的逆运算。
- join 用指定分隔符,把字符串列表连接成字符串;split的逆运算。
- lower 返回字符串小写字母版。
- replace 返回以指定字符串代替字符串后的字符串。
- strip 返回去除两侧空格后的字符串。
- translate 单字符按maketrans创建的参数表替换。
字典 dict
d = {"key1":val1,"key2":val2,...}
-
键应为不可变类型
-
基本制作
- len 返回字典中元素个数
- d[k] 返回键k的值
- d[k] = v 键k赋值v
- del d[k] 删除键k项
- k in d 判断k是否为d中键
- clear 清除字典中所有项
- copy 返回键-值对相同的新字典
- fromkeys 用指定键建立新字典,值默认为None
- get 访问指定键的值,可以避免键不存在时的错误提示
- has_key 判断字典中是否含有特定键,与in功能相似,python3中不再有此函数
- items 以列表形式返回字典中所有键-值对
- iteritems 以迭代器形式返回字典键-值对
- keys 以列表形式返回所有键
- iterkeys 以迭代器形式返回字典所有键
- values/itervalues 与上面keys、iterkeys相似
- pop 返回指定键的值,并删除键值对
- popitem 随机(因为无序嘛)返回键-值对,并删除
- update 利用字典项更新另一个字典
网友评论