[Python]字典Dictionary、列表List、元组Tuple差异化理解
概述:Python中这三种形式的定义相近,易于混淆,应注意区分.
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,2
则print "Value of x,y:", x, y
- Tuple好处:速度比List快,代码安全。
Python元组包含了以下内置函数:
1、cmp(tuple1, tuple2):比较两个元组元素。
2、len(tuple):计算元组元素个数。
3、max(tuple):返回元组中元素最大值。
4、min(tuple):返回元组中元素最小值。
5、tuple(seq):将列表转换为元组。