[Python]字典Dictionary、列表List、元组Tuple差异化理解

概述:Python中这三种形式的定义相近,易于混淆,应注意区分.

1
2
3
4
Python中字典Dictionary、列表List、元组Tuple定义形式:
aDict={'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
aList=[1,2,3,4,5]
aTuple=(1,2,3,4,5)

一、字典Dictionary

语法形式:aDict={‘a’:1, ‘b’:2, ‘c’:3, ‘d’:4, ‘e’:5}
Python手册说明:https://docs.python.org/2.7/library/stdtypes.html#dict

  • Dictionary是Python内置数据类型,定义了”键-值”间的一一对应关系。
  • 每个元素都是key-value对,整个元素集合用大括号扩起来。
  • 可通过key获取对应值,但不能根据value获取key。
  • key不能相同,相同key则将覆盖就值。
  • key大小写敏感,value可支持任意数据类型(字符串、整数、对象或其他Dictionary)。
  • del可通过key删除字典中特定元素del dict[k]
  • clear将清空字典中所有元素,空的大括号表示没有元素的字典。

二、列表List

语法形式:aList=[1,2,3,4,5]

  • List中元素是可变的。
  • List是使用中括号括起来的有序元素集合。
  • List列表索引从0开始。
  • 负数索引表示从List的尾部开始向前存取元素,list[-1]表示最后一个元素,可以理解list[-n]=list[len(list)-n]
  • List[m:n]表示List中m<=k<n的子集,被称为slice,详见手册
  • List[:]返回与List中元素相同的一个新list,List[1:]取1-len(List)中所有元素
  • List列表方法:insert()插入新的元素,append()在尾部追加新元素、列表,extend()将一个列表扩展到原列表中,index()返回首个出现的元素索引,k in list返回是否存在
  • List可通过+连接两个列表,等价于list.extend(anotherList)。
  • List中元素可以相同

三、元组Tuple

语法形式:aTuple=(1,2,3,4,5)

  • Tuple元组是不可变的List,不能改变元组中的元素值。
  • 创建Tuple的形式与List相同,区别在于将[]换为()。
  • Tuple元组没有append、extend、remove、pop、index等方法,但可使用in判断元素是否存在。
  • 空元组可以用()表示,但只有一个元素的元组为避免歧义应当使用(n,)表示,而避免只用(n)的形式,Python可能误解为加了小括号的数字n。
  • 列表和元组的相互转化:atuple=tuple(alist)alist=list(atuple)
  • 无关闭分隔符:任何以逗号分隔的无符号对象都认为是元组,如x,y = 1,2print "Value of x,y:", x, y
  • Tuple好处:速度比List快,代码安全。

Python元组包含了以下内置函数:

1
2
3
4
5
1. cmp(tuple1, tuple2):比较两个元组元素。
2. len(tuple):计算元组元素个数。
3. max(tuple):返回元组中元素最大值。
4. min(tuple):返回元组中元素最小值。
5. tuple(seq):将列表转换为元组。

参考文献

  1. Python list、tuple、dict区别
  2. Python中的List,Tuple和Dictionary
  3. Python 元组(Tuple)操作详解
  4. Python tuple 元组详解