zoukankan      html  css  js  c++  java
  • 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是多么的有爱啊,哈哈~ 还有好多矩阵玩法,欢迎进入矩阵的世界 :)

  • 相关阅读:
    (算法)堆与堆排序
    (笔试题)N!的三进制数尾部0的个数
    (笔试题)N!尾部连续0的个数
    程序员与编程一些鲜为人知的事实 软件遵循熵的定律
    关注职业发展,也要关注健康 别让老板杀了你
    其实,最好的年龄才刚刚开始
    你为什么就做不到呢? 正确的选择改变命运
    睡觉前为啥总是忍不住刷网页刷手机?
    中年程序员职业生涯另一选择:创业追寻自己的热情所在
    都很好的两人为何却没有好的婚姻 清楚对方的需要
  • 原文地址:https://www.cnblogs.com/spaceship9/p/3032806.html
Copyright © 2011-2022 走看看