python中内置的数据类型有列表(list)元组(tuple)字典(directory)。
1 list
list是一种可变的有序的集合。来看一个list实例:
#第一种方法: >>> name=[‘liming‘,‘xiaohong‘,] >>> name [‘liming‘, ‘xiaohong‘] #第二种方法: >>> age=list([18,17,]) >>> age [18, 17]
list有许多功能:
>>> name [‘liming‘, ‘xiaohong‘] >>> len(name) 2 >>> name.__len__() 2
>>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘] >>> name[2] ‘xiaoqiang‘
>>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘] >>> name.index(‘xiaohong‘) 1 #如果没有该元素,则会报错 >>> name.index(‘xiao‘) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: ‘xiao‘ is not in list
>>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘] >>> name.append(‘xiaohuang‘) >>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘, ‘xiaohuang‘]
>>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘] >>> name.insert(1,‘yefan‘) >>> name [‘liming‘, ‘yefan‘, ‘xiaohong‘, ‘xiaoqiang‘]
>>> name [‘liming‘, ‘yefan‘, ‘xiaohong‘] >>> result=name.pop() #将最后一个元素赋值给result >>> name [‘liming‘, ‘yefan‘] >>> result ‘xiaohong‘
>>> name [‘liming‘, ‘yefan‘, ‘xiaoqiang‘] >>> name.pop(1) ‘yefan‘ >>> name [‘liming‘, ‘xiaoqiang‘]
>>> name [‘liming‘, ‘yefan‘, ‘xiaoqiang‘] >>> name[1]=‘xiaohong‘ >>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘]
>>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘] >>> name.extend([‘yefan‘,‘heihuang‘,]) >>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘, ‘yefan‘, ‘heihuang‘]
>>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘, ‘yefan‘, ‘heihuang‘] >>> name.reverse() >>> name [‘heihuang‘, ‘yefan‘, ‘xiaoqiang‘, ‘xiaohong‘, ‘liming‘]
另外,list元素也可以是另一个list(字典也可以):
>>> name=[‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘] >>> age [18, 17] >>> name.append(age) >>> name [‘liming‘, ‘xiaohong‘, ‘xiaoqiang‘, [18, 17]]
2 tuple
是一种另类的list,但是他的功能相较于list要少,因为tuple不支持修改,也就是不支持append,pop,extend,insert……
定义一个tuple:
#第一种方法 >>> age=(1,3) >>> age (1, 3) #第二种方法 >>> age=tuple((1,4,)) >>> age (1, 4)
如果要定义一个空的tuple,可以写成()
:
>>> age=() >>> age ()
但是,要定义一个只有1个元素的tuple,如果你这么定义:
>>> age=(1) >>> age 1 >>> type(age) <class ‘int‘>
定义的不是tuple,是1
这个数!这是因为括号()
既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1
。
所以一般定义只有一个元素的tuple时,要加个逗号:
>>> age=(1,) >>> age (1,)
实际上tuple也是可变的,前文中所说的不可变指的是tuple元素不可变,但是tuple中的元素的元素是可以改变的。
>>> info=([‘liming‘,‘14‘,],[‘xiaohong‘,‘13‘,]) >>> info ([‘liming‘, ‘14‘], [‘xiaohong‘, ‘13‘]) >>> info[1][1]=12 >>> info ([‘liming‘, ‘14‘], [‘xiaohong‘, 12])
在这个例子中改变的不是tuple的元素,而是list的元素。
3 directory
字典是无序的由键值对组成的集合,元素可以是list tuple directory
定义一个字典:
>>> info={‘liming‘:16,‘xiaohong‘:12} >>> info {‘xiaohong‘: 12, ‘liming‘: 16} #格式是一个唯一的键对应一个值。
但是,当第二次定义一个键时,会出现这种情况:
>>> info {‘xiaohong‘: 12, ‘liming‘: 16} >>> info={‘liming‘:16,‘xiaohong‘:12,‘liming‘:12} >>> info {‘xiaohong‘: 12, ‘liming‘: 12}
也就是第二个相同的键会覆盖掉第一个相同的键
字典的功能:
原文:http://www.cnblogs.com/MnCu8261/p/5418632.html