Python 如何将列作为第一列添加到prettytable

Python 如何将列作为第一列添加到prettytable,python,Python,我用prettytable模块做了一些tablex。现在我想给它添加一列,但我想把它作为第一列添加,我该怎么做 方法add_column将我的专栏放在最后一个位置。从阅读文章中有两种方法。您只需从头开始重新生成表,确保首先添加有问题的列 第二种可能是访问组成PrettyTable的数据结构并手动修改它们。请注意,以这种方式所犯的任何错误都不会被围绕默认add\u列的验证构建捕获 如果我们有桌子 from prettytable import PrettyTable x = PrettyTabl

我用prettytable模块做了一些table
x
。现在我想给它添加一列,但我想把它作为第一列添加,我该怎么做

方法
add_column
将我的专栏放在最后一个位置。

从阅读文章中有两种方法。您只需从头开始重新生成表,确保首先添加有问题的列

第二种可能是访问组成PrettyTable的数据结构并手动修改它们。请注意,以这种方式所犯的任何错误都不会被围绕默认
add\u列的验证构建捕获

如果我们有桌子

from prettytable import PrettyTable

x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide",1295, 1158259, 600.5])
x.add_row(["Brisbane",5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])

print(x)

+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|  Adelaide | 1295 |  1158259   |      600.5      |
|  Brisbane | 5905 |  1857594   |      1146.4     |
|   Darwin  | 112  |   120900   |      1714.7     |
|   Hobart  | 1357 |   205556   |      619.5      |
|   Sydney  | 2058 |  4336374   |      1214.8     |
| Melbourne | 1566 |  3806092   |      646.9      |
|   Perth   | 5386 |  1554769   |      869.4      |
+-----------+------+------------+-----------------+

在开始处插入列的步骤

fieldname = 'Number'
x._field_names.insert(0, fieldname) 
x._align[fieldname] = 'c' 
x._valign[fieldname] = 't' 
for i, _ in enumerate(x._rows): 
    x._rows[i].insert(0, i) 

print(x)

+--------+-----------+------+------------+-----------------+
| Number | City name | Area | Population | Annual Rainfall |
+--------+-----------+------+------------+-----------------+
|   0    |  Adelaide | 1295 |  1158259   |      600.5      |
|   1    |  Brisbane | 5905 |  1857594   |      1146.4     |
|   2    |   Darwin  | 112  |   120900   |      1714.7     |
|   3    |   Hobart  | 1357 |   205556   |      619.5      |
|   4    |   Sydney  | 2058 |  4336374   |      1214.8     |
|   5    | Melbourne | 1566 |  3806092   |      646.9      |
|   6    |   Perth   | 5386 |  1554769   |      869.4      |
+--------+-----------+------+------------+-----------------+

现在,您可以使用我的示例来说明如何添加字段
Number
,以添加您选择的字段


我仍然强烈建议您在创建表之前处理数据,然后再处理PrettyTable。

第一个对我来说是有问题的,因为我创建了另一个行上带有循环的列。另一个似乎不起作用,其输出不改变顺序:(你是正确的,第二个选项不起作用幸运的是我找到了一种解决问题的方法,并将其放在我编辑的答案中,而不是不起作用的解决方案。