Learning Python Chapter 8 - 列表和词典
列表
列表特点
列表是可变的序列,有以下特点:
- 有序的任意元素的集合
- 可以通过序号获取
- 长度可变,内容可为不同类型object,可任意嵌套
- 内容可变
列表操作
遍历
- 可以用for循环遍历。
- 可以用list comprehension遍历,并且一般编码和运行要快捷有效一些。
- 可以用map函数遍历,但是map后要转换为list操作。
index操作
唯一要注意的是,slice操作可以看作两步,第一步是移除被slice的部分,第二步是把新的内容插入到原来slice出来的位置中。
即时改变list
- 可以通过slice和index改变
- 可以使用method,比如append和sort。sortmethod还可以加入额外的命令字符串,比如reverse=True为倒序排列,key字符串来对list进行特殊处理后再排序
- 还可以用function来改变,比如sorted(返回相应的改变后list,而.append和.sort不会。)
其他list method
- reverse:将整个list倒序
- extend:在list后面添加元素
- pop:默认为将最后面一个元素移除,加入argument以后则可实现对指定的元素移除
- reversed:是function,类似于sorted,只不过是倒序排列
其他listoperation
- del L[index]:删除相应的元素
词典
词典特点
- 由key来获取元素,而非index
- 无序集合
- 长度可变,可任意嵌套,元素可混合
- 属于mutable mapping
- 以类似哈希表的方式实现
词典操作
- len函数可以获取的是key的数目,也即词典中有多少对数据
- 可以用in来检查相应的key在不在词典里,在词典里,key被看作iterator
- 可以用del D[key]来删除相应数据
其他词典操作
- values:列出所有的词典中的value,要与list(D.values())配合使用
- items:将所有的词典数据以tuple形式列出,要与list()配合使用
- get:获取相应的key对应的value,如果没有该key返回None
- update:将另一个词典和当前词典混合,如果有重复的key则其value会被覆盖
- pop:类似于list中的pop,括号中的argument为要pop的value对应的key
注意要点
- 序列操作不能适用
- 为新的key赋值value会添加新的entry
- key不一定要为字符串
应用
- 可以用于模拟C中的可变长度array
- 可以用于模拟C中的只含有少量数据的大型多维array
- 可以用try、if、get来避免获取value时使用的key不存在导致的出错
- 可以用dict()函数来创建词典
3.X和2.7中的词典
此部分跳过了,以后应用时再看
浙公网安备 33010602011771号