本章涉及到的Python数据结构非常重要,主要包括以下内容:
◆ 列表(数组)
◆ 元组(动态数组)
◆ 字典(哈希表)
◆ 引用
一、列表
Python中的列表,是长度可变的数组,下面我们看两个例子:
# -*- coding: gb18030 -*-
#例1
#定义列表
array=['b','c','d']
print 'length=',len(array) #输出=>length= 3
print 'item_1=',array[1] #输出=>item_1= c
#输出列表中的元素
for i in array:
print 'item is:',i #输出=>item is: b item is: c item is: d
#例2
#2.1、为列表增加一个元素,只能单个的增加
array.append('a')
array.append('e')
print 'after add items:',array #输出=> after add items: ['b', 'c', 'd', 'a', 'e']
#2.2、删除列表第5个元素
del array[3]
#2.3、对列表元素进行排序
array.sort()
print 'after sort items:',array #输出=> after sort items: ['b', 'c', 'd', 'e']
#2.4、列表,元组,字典都是序列,获取特定元素,和切片,-1表示从最后一个元素开始
print array #输出=> ['b', 'c', 'd', 'e']
print '1-3:',array[1:3] #输出=> 1-3: ['c', 'd'] 备注[1:3]为前闭后开
列表还有其他很多的方法,如下:
二、元组
元组就是和列表都是数组,只是列表是长度可变的数组,而元组是长度固定的数组,相当于C、C++中的数组
# -*- coding: gb18030 -*-
list_a =("1",2)
print list_a #=>输出('1',2)
三、字典
字典也叫哈希表,可定义对应的键与键值,我们一个例子,就好理解了:
# -*- coding: gb18030 -*-
#1、定义字典
haxi={
'aa':'name'
,'bb':'address'
,'cc':'tel'
}
#2、增加字典元素
haxi['dd']='sex'
#3、删除字典元素
del haxi['bb']
#4、输出字典元素的个数
print 'haxi length=',len(haxi)
#5、输出字典中指定的元素
print 'key:aa=',haxi['aa']
#6、输出字典中所有的元素
for name ,address in haxi.items():
print (name,address)
#7、输出字典中所有部分
print 'haxi items:',haxi
#结果输出如下:
'''
haxi length= 3
key:aa= name
('aa', 'name')
('cc', 'tel')
('dd', 'sex')
haxi items: {'aa': 'name', 'cc': 'tel', 'dd': 'sex'}
'''
字典还有很多其他有用的方法,可根据帮助实践:
四、引用
引用相当于列表的拷贝,我们看看如下的例子:
# -*- coding: gb18030 -*-
z_list = ['a','b','c']
copy = z_list
del copy[0]
print z_list #=>输出 ['b', 'c']
print copy #=>输出 ['b', 'c']
从结果中,我们可以看出:此时删除引用列表中的第一个元素,实际上也把原来列表中的第一个元素删掉了
那如果我们不希望删除copy里的元素,不影响原来列表中的元素,该怎么办呢?
此时,我们将使用切片,可解决该问题,看下面的例子:
# -*- coding: gb18030 -*-
shop=['1','2','3']
mylist = shop[:] #使用切片
del mylist[0] #此时不会影响shop中的元素,只是将引用mylist中的第一个元素删除
print shop #输出 => ['1', '2', '3']
print mylist #输出=> ['2', '3']
小结:
本章内容非常重要,稍加练习,也很容易掌握!