Python 搞搞数据库 简单的SQLite操作前 之矩阵 matrix

其中为了输入一些数据库量表,我不得不到官方网站里面去下载原来数据,然后导入到数据库中。

可是发现官方网站给的数据是pdf的,即使是拷贝下来,也是行列不在一起的,这样对将数据整合到数据库中是比较麻烦的。

为了不每条数据都一条一条地输入我想出了一个办法。

要输入的数据分别在此pdf文档的348 页,349页。复制粘帖到文本文档里面是按照每行每行的。数据并不是按照列来的。即使是复制到libraoffice 中也不能。

于是我想出了这个方法

这是直接复制的结果:

这是我们想要的排列组合,13行,3列 (下载地址:http://wenku.it168.com/d_000144410.shtml 分别位于348,349 页。两个表)

然后,是经过我转换的代码方法如下:

 

matrix1.py具体代码是:

 1 data_matrix = [(
 2 "Newfoundland and Labrador",
 3 "Prince Edward Island",
 4 "Nova Scotia",
 5 "New Brunswick",
 6 "Quebec",
 7 "Ontario",
 8 "Manitoba",
 9 "Saskatchewan",
10 "Alberta",
11 "British Columbia",
12 "Yukon Territory",
13 "Northwest Territories",
14 "Nunavut"
15 ),
16 (
17 512930,
18 135294,
19 908007,
20 729498,
21 7237479,
22 11410046,
23 1119583,
24 978933,
25 2974807,
26 3907738,
27 28674,
28 37360,
29 26745
30 ),
31 (
32 370501.69,
33 5684.39,
34 52917.43,
35 71355.67,
36 1357743.08,
37 907655.59,
38 551937.87,
39 586561.35,
40 639987.12,
41 926492.48,
42 474706.97,
43 1141108.37,
44 1925460.18,
45 )]
46 
47 temp_big = []
48 for i in range(13):
49    temp = []
50    for x in data_matrix:
51        temp.append(x[i]) 
52    temp_big.append(temp)
53 print temp_big
54 #print zip(*data_matrix)

以上方法,是参考我曾经写过的一篇讲义得来的:http://blog.csdn.net/spaceship20008/article/details/8316983 在

5.1.4. Nested List Comprehensions 这个部分,还有更多内容,也在这个页面里面。这样就得到了里面的数据。

其实,我还想过用读取文本文档,每行一个元素,然后添加到元组tuple中的。其实方法都差不多。这个最好的是直接复制就好了。当然,复制完成后,一定的Vim操作功底是有的,比如

:行1,行2s/$/",/                          #这个是用来在行1和行2最末尾处换上", 的意思,上面有用到,

或者可以使用ctrl + v 进入visual block,然后用 shift + i 进入全部插入状态。

 

以上两种vim操作方式各有千秋吧。visual block不能用在行尾(如果行尾不齐的话,还是用命令行比较好)

 

 

精髓之处在这里:

只需要将上面的代码稍微改写一下:

temp_big = []
for i in range(13):
   temp = []
   for x in data_matrix:
       temp.append(x[i]) 
   temp_big.append(temp)
print temp_big

但是感觉,这样写并不节省变量。这样想是最简单的了。连续的append列表。

 

所以,这里奉上最简单的使用方法!

In the real world, you should prefer built-in functions to complex flow statements. The zip() function would do a great job for this use case:

 

只需要

就能得到结果

与我们做的不同的是,zip(*data_matrix)得到的结果,内嵌的是tuple元组。不过不影响使用。

看来build-in 函数zip是多么的有爱啊,哈哈~ 还有好多矩阵玩法,欢迎进入矩阵的世界 :)

posted @ 2013-04-20 16:56  spaceship9  阅读(461)  评论(0编辑  收藏  举报