Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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文本_Python - Fatal编程技术网

升序python文本

升序python文本,python,Python,我有一个简单的问题,我创建了游戏,最后我把分数附加到文本文件中。现在我在这个文件中有类似的内容: John: 11 Mike: 5 John: 78 John: 3 Steve: 30 我想给用户的可能性,阅读前3名的分数。现在我创建了这个: with open(r'C:/path/to/scores.txt', 'r') as f: for line in f: data = line.split() p

我有一个简单的问题,我创建了游戏,最后我把分数附加到文本文件中。现在我在这个文件中有类似的内容:

John: 11
Mike: 5
John: 78
John: 3
Steve: 30
我想给用户的可能性,阅读前3名的分数。现在我创建了这个:

with open(r'C:/path/to/scores.txt', 'r') as f:
            for line in f:
                data = line.split()
                print '{0[0]:<15}{0[1]:<15}'.format(data)
它看起来更好,但我如何才能显示只有三个位置和最高第一等最佳结果

诸如此类:

 1.   John:       78 
 2.   Steve:      30 
 3.   John:       11   

根据您可能希望对数据执行的其他操作,我认为
pandas
是一个很好的选择。您可以将其加载到
pandas
中,如下所示:

import pandas as pd
df = []
with open(r'C:/path/to/scores.txt', 'r') as f:
            for line in f:
                data = line.split()
                df.append({'Name': data[0], 'Score': data[1]})
df = pd.DataFrame(df)
然后你可以按分数排序并显示前三名

df.sort('Score', ascending=False)[:3]
我建议阅读所有的熊猫,看看它能做什么

编辑:为了便于阅读,您可以执行以下操作

df = pd.read_table('C:/path/to/scores.txt')

但这将要求您首先在该文件中放置列标题,这取决于您可能希望对数据执行的其他操作,我认为
pandas
是一个很好的选择。您可以将其加载到
pandas
中,如下所示:

import pandas as pd
df = []
with open(r'C:/path/to/scores.txt', 'r') as f:
            for line in f:
                data = line.split()
                df.append({'Name': data[0], 'Score': data[1]})
df = pd.DataFrame(df)
然后你可以按分数排序并显示前三名

df.sort('Score', ascending=False)[:3]
我建议阅读所有的熊猫,看看它能做什么

编辑:为了便于阅读,您可以执行以下操作

df = pd.read_table('C:/path/to/scores.txt')

但这将要求您首先在该文件中放置列标题,这取决于您可能希望对数据执行的其他操作,我认为
pandas
是一个很好的选择。您可以将其加载到
pandas
中,如下所示:

import pandas as pd
df = []
with open(r'C:/path/to/scores.txt', 'r') as f:
            for line in f:
                data = line.split()
                df.append({'Name': data[0], 'Score': data[1]})
df = pd.DataFrame(df)
然后你可以按分数排序并显示前三名

df.sort('Score', ascending=False)[:3]
我建议阅读所有的熊猫,看看它能做什么

编辑:为了便于阅读,您可以执行以下操作

df = pd.read_table('C:/path/to/scores.txt')

但这将要求您首先在该文件中放置列标题,这取决于您可能希望对数据执行的其他操作,我认为
pandas
是一个很好的选择。您可以将其加载到
pandas
中,如下所示:

import pandas as pd
df = []
with open(r'C:/path/to/scores.txt', 'r') as f:
            for line in f:
                data = line.split()
                df.append({'Name': data[0], 'Score': data[1]})
df = pd.DataFrame(df)
然后你可以按分数排序并显示前三名

df.sort('Score', ascending=False)[:3]
我建议阅读所有的熊猫,看看它能做什么

编辑:为了便于阅读,您可以执行以下操作

df = pd.read_table('C:/path/to/scores.txt')
但这将要求您首先在该文件中放置列标题

,如中所示,答案可仅用于排序;对结果进行切片,只得到三个最高分是微不足道的

也就是说,在这种情况下,您还可以切换到使用over
sorted
;它需要一个
功能,就像
排序
,与
排序
不同,它只使用内存来存储前X个项目(当要提取的集合较大且要保留的项目数较少时,理论性能更好)。除了不需要
reverse=True
(因为选择
nlargest
已经可以了),
heapq.nlargest
是那种情况下排序的
的替代品。

与中一样,答案可以直接使用
sorted
;对结果进行切片,只得到三个最高分是微不足道的

也就是说,在这种情况下,您还可以切换到使用over
sorted
;它需要一个
功能,就像
排序
,与
排序
不同,它只使用内存来存储前X个项目(当要提取的集合较大且要保留的项目数较少时,理论性能更好)。除了不需要
reverse=True
(因为选择
nlargest
已经可以了),
heapq.nlargest
是那种情况下排序的
的替代品。

与中一样,答案可以直接使用
sorted
;对结果进行切片,只得到三个最高分是微不足道的

也就是说,在这种情况下,您还可以切换到使用over
sorted
;它需要一个
功能,就像
排序
,与
排序
不同,它只使用内存来存储前X个项目(当要提取的集合较大且要保留的项目数较少时,理论性能更好)。除了不需要
reverse=True
(因为选择
nlargest
已经可以了),
heapq.nlargest
是那种情况下排序的
的替代品。

与中一样,答案可以直接使用
sorted
;对结果进行切片,只得到三个最高分是微不足道的


也就是说,在这种情况下,您还可以切换到使用over
sorted
;它需要一个
功能,就像
排序
,与
排序
不同,它只使用内存来存储前X个项目(当要提取的集合较大且要保留的项目数较少时,理论性能更好)。除了不需要
reverse=True
(因为选择
nlargest
已经做到了这一点),
heapq.nlargest
是那种情况下排序的
的替代品。

您可以稍微编辑代码,将分数存储在列表中,然后使用
sorted
功能对它们进行排序。然后,您可以只取排序列表的前三个分数

with open(r'doc.txt', 'r') as f:
            scores = []
            for line in f:
                data = line.split()
                scores.append(data)

            top3 = sorted(scores, key = lambda x: int(x[1]), reverse=True)[:3]

            for score in top3:
                print '{0[0]:<15}{0[1]:<15}'.format(score)
打开(r'doc.txt',r')作为f的
:
分数=[]
对于f中的行:
data=line.split()
分数。附加(数据)
top3=排序(分数,key=lambda x:int(x[1]),reverse=True)[:3]
排名前三的分数:

打印“{0[0]:您可以稍微编辑代码,将分数存储在列表中,然后使用
排序功能对它们进行排序。然后您可以只获取排序列表的前三个分数

with open(r'doc.txt', 'r') as f:
            scores = []
            for line in f:
                data = line.split()
                scores.append(data)

            top3 = sorted(scores, key = lambda x: int(x[1]), reverse=True)[:3]

            for score in top3:
                print '{0[0]:<15}{0[1]:<15}'.format(score)
打开(r'doc.txt',r')作为f的
:
分数=[]
对于f中的行:
data=line.split()
分数。附加(数据)
top3=排序(分数,key=lambda x:int(x[1]),reverse=True)[:3]
排名前三的分数:

打印“{0[0]:您可以稍微编辑代码,将分数存储在列表中,然后使用