Python数据操作¶
在Python中有list、dictionary、Tuple等多种类似于数组的数据结构实现,可以帮助快速操作数据。
by openthings@163.com, 2016-04.
List,使用[a,b,c,...]方式声明。¶
列表是基础的数据结构。
In [9]:
alist = [0,1,2,3,4]
print("总计:",len(alist))
print("元素:", alist)
总计: 5
元素: [0, 1, 2, 3, 4]
字符串的列表。
In [20]:
colours = ["red","green","blue"]
for colour in colours:
print(colour)
red
green
blue
列表的传统方式遍历。
In [24]:
for i in range(0,len(alist)):
print(alist[i])
0
1
2
3
4
列表的递归方式遍历。
In [25]:
for i in alist:
print(i)
0
1
2
3
4
可以直接调用一个列表。
In [26]:
for obj in [0,1,2,3,4]:
print(obj)
0
1
2
3
4
** 创建一个矩阵。**
In [63]:
olist = [[11,12,13],[21,22,23],[31,32,33]]
for row in olist:
print(row)
[11, 12, 13]
[21, 22, 23]
[31, 32, 33]
** 生成一个数据序列。在做数值检验时很有用。**
In [43]:
for obj in range(5):
print(obj)
0
1
2
3
4
** 生成一个数据序列:range(开始值,结束值,步长)**
In [27]:
for obj in range(5,10,2):
print(obj)
5
7
9
** String as a list of char. 字符串是字符数组。**
In [7]:
name='BeginMan'
for obj in range(len(name)):
print('(%d)' %obj,name[obj])
(0) B
(1) e
(2) g
(3) i
(4) n
(5) M
(6) a
(7) n
Dictionary,词典,{key:value,...}¶
词典数据就是一系列k:v值对的集合。
In [30]:
dict = {'name':'BeginMan','job':'pythoner','age':22}
print("Dict Length: ",len(dict))
print(dict)
Dict Length: 3
{'age': 22, 'job': 'pythoner', 'name': 'BeginMan'}
*注意:上面的词典数据的输出与json表示是完全一致的,后面在json会专门介绍。*
词典的遍历:
In [71]:
dict["name"]
Out[71]:
'BeginMan'
In [41]:
print("Key","\t Value")
print("=================")
for key in dict:
print(key,"\t",dict[i])
Key Value
=================
age BeginMan
job BeginMan
name BeginMan
dict的每一个item(obj)是一个二元组(下面介绍元组)。
In [31]:
for obj in dict.items():
print(obj)
('age', 22)
('job', 'pythoner')
('name', 'BeginMan')
In [46]:
for k,v in dict.items():
print(k,v)
age 22
job pythoner
name BeginMan
** Json的简单演示,将dict转为典型的json字符串表示。**
In [72]:
import json
j = json.dumps(dict)
print(repr(j))
'{"age": 22, "job": "pythoner", "name": "BeginMan"}'
** 从JSON字符串载入一个dict对象。**
In [53]:
d = json.loads('{"age": 22, "job": "pythoner", "name": "BeginMan"}')
print("Type of d: ", type(d))
print(d)
Type of d: <class 'dict'>
{'name': 'BeginMan', 'job': 'pythoner', 'age': 22}
tuple,(obj1,obj2,...),元组¶
一个元组可包含多种类型的对象,不可修改。
In [59]:
tup = 'abc',1,2,'x',True
In [60]:
len(tup),tup
Out[60]:
(5, ('abc', 1, 2, 'x', True))
** 元组的赋值和取值。**
In [56]:
x,y =1,2
In [10]:
x,y
Out[10]:
(1, 2)
一个字典、元组构成的复合列表对象。¶
In [67]:
ao = [{"k1":"key","k2":2},(3,"element")]
ao
Out[67]:
[{'k1': 'key', 'k2': 2}, (3, 'element')]
** 访问这个符合对象的值。**
len(ao),ao[0]["k1"],ao[1][0],ao[1][1]从上面可以看出,python的数据结构是非常灵活的,是数据探索和分析、处理的利器。