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

  • 相关阅读:
    HDU 1269 迷宫城堡
    HDU 4771 Stealing Harry Potter's Precious
    HDU 4772 Zhuge Liang's Password
    HDU 1690 Bus System
    HDU 2112 HDU Today
    HDU 1385 Minimum Transport Cost
    HDU 1596 find the safest road
    HDU 2680 Choose the best route
    HDU 2066 一个人的旅行
    AssetBundle管理机制(下)
  • 原文地址:https://www.cnblogs.com/spaceship9/p/3032806.html
Copyright © 2011-2022 走看看