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中的词典

此部分跳过了,以后应用时再看

posted on 2016-10-08 14:43  hazelnut  阅读(61)  评论(0)    收藏  举报

导航