七、Python:数据结构


该节来了解Python的数据结构,这是python中非常基础的知识,主要包括以下内容:

    列表(数组)
    元组(动态数组)
    字典(哈希表)
    引用

一、列表

Python中的列表,是长度可变的数组,下面我们看两个例子

1
2
3
4
5
6
7
8
9
10
# -*- 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#例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++中的数组

1
2
3
# -*- coding: gb18030 -*-
list_a =("1",2)
print list_a    #=>输出('1',2)

三、字典

字典也叫哈希表,可定义对应的键与键值,举个例子,就好理解了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# -*- 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'}
'''

字典还有很多其他有用的方法,可根据帮助实践:

四、引用

引用相当于列表的拷贝,我们看看如下的例子:

1
2
3
4
5
6
7
8
9
# -*- coding: gb18030 -*-

z_list = ['a','b','c']

copy = z_list
del copy[0]    

print z_list   #=>输出 ['b', 'c']
print copy     #=>输出 ['b', 'c']

从结果中,我们可以看出:此时删除引用列表中的第一个元素,实际上也把原来列表中的第一个元素删掉了
那如果我们不希望删除copy里的元素,不影响原来列表中的元素,该怎么办呢?
此时,我们将使用切片,可解决该问题,看下面的例子:

1
2
3
4
5
6
7
# -*- coding: gb18030 -*-
shop=['1','2','3']

mylist = shop[:]  #使用切片
del mylist[0]     #此时不会影响shop中的元素,只是将引用mylist中的第一个元素删除
print shop        #输出=> ['1', '2', '3']
print mylist      #输出=> ['2', '3']

小结:
本章内容非常重要,稍加练习,也很容易掌握

LEAVE A REPLY

loading