Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用prettytable向列添加信息_Python_Python 3.x_Prettytable - Fatal编程技术网

Python 使用prettytable向列添加信息

Python 使用prettytable向列添加信息,python,python-3.x,prettytable,Python,Python 3.x,Prettytable,我希望创建一个评分系统,我正在使用prettytable来做到这一点。我将所有分数添加到表中,然后按分数排序。这非常有效,除了当我包含他们的位置(1、2、3、4等)时。如果他们的位置在更改之前包含,它会更改,因此数字1不再位于顶部,4不再位于底部,它们会混乱起来 我尝试过的另一种方法是在按分数排序后添加位置,但这会将列添加到表的右侧,我的目标是将其放在右侧。如果有人能告诉我怎么做 a) 覆盖特定列, b) 停止影响某些列的排序,或 c) 在表的左侧添加新列 非常感谢 from prettytab

我希望创建一个评分系统,我正在使用prettytable来做到这一点。我将所有分数添加到表中,然后按分数排序。这非常有效,除了当我包含他们的位置(1、2、3、4等)时。如果他们的位置在更改之前包含,它会更改,因此数字1不再位于顶部,4不再位于底部,它们会混乱起来

我尝试过的另一种方法是在按分数排序后添加位置,但这会将列添加到表的右侧,我的目标是将其放在右侧。如果有人能告诉我怎么做

a) 覆盖特定列,
b) 停止影响某些列的排序,或
c) 在表的左侧添加新列

非常感谢

from prettytable import PrettyTable

x = PrettyTable()
x.field_names = ["Position", "User", "Score"]


x.add_row([1, "Sam", 42])
x.add_row([2, "Ben", 43])
x.add_row([3, "Alex", 37])
x.add_row([4, "Joe", 54])

x.reversesort = True
y = x.sortby="Score"


print(x.get_string(start=0,end=4))

最好将打印和评分分开

从prettytable导入prettytable
#将用户名映射到分数的字典。
分数={
“山姆”:42,
“本”:43,
“亚历克斯”:37岁,
“乔”:54岁,
}
#sorted()返回iterable中的已排序列表。
#因为‘scores’现在是一个dict,所以我们需要使用`.items()`
#从中获得双双。
#键函数访问配对的值–分数。
#设置“reverse=True”的原因显而易见。
排序\用户\到\分数=排序(
scores.items(),
key=lambda对:对[1],
反向=真,
)
pt=PrettyTable()
pt.field_names=[“位置”、“用户”、“分数”]
#enumerate()从iterable中生成(位置、基准)对。
#它接受一个可选的开始索引参数–我们需要位置
#从1开始,而不是从0开始。
对于枚举中的位置(用户,分数)(排序为用户到分数,1):
添加第行([位置、用户、分数])
打印(pt.get_字符串(开始=0,结束=4))

请向我们显示您当前的代码。