《Data Master》

【人人都是数据科学家】,by openthings@163.com, 2016-04.

基础篇—Python快速入门

(一)列表、词典、元组及其遍历。

Array,数组由一系列数据组成。在Python中有list、dictionary、Tuple等多种实现。

List,使用[a,b,c,...]方式声明。

列表是基础的数据结构。


In [9]:
alist = [0,1,2,3,4]
print("总计:",len(alist))
print("元素:", alist)


总计: 5
元素: [0, 1, 2, 3, 4]

字符串的列表。


In [1]:
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的数据结构是非常灵活的,是数据探索和分析、处理的利器。