我试图从文件中对数据进行排序而不是安静地获取我需要的内容。我有一个带有种族详细信息的文本文件(名称位置(即1,2,3)。我希望能够按照最高位置组织数据,也可以按字母顺序按名称组织数据。如果我拆分行,我可以这样做然后名称和分数将不匹配。
任何帮助和建议都会受到欢迎,我已经触及了那个众所周知的墙。
我的道歉(这个网站的第一次用户,和python noob,陡峭的学习曲线)感谢您的建议,我真的非常感谢您的帮助。
comp=[]
results = open('d:\\test.txt', 'r')
for line in results:
line=line.split()
# (name,score)= line.split()
comp.append(line)
sorted(comp)
results.close()
print (comp)
测试文件采用以下格式:
琼斯2
Ranfel 7
彼得森5
史密斯1
西蒙斯9
罗伯茨4
麦当劳3
罗杰斯6
Elliks 8
掌舵10
答案 0 :(得分:0)
我完全赞同所有因为表现不佳而对这个问题进行投票的人。但是,我心情很好,所以我会尝试,至少引导你朝着正确的方向前进:
假设您的文本文件如下所示:
Name,Placement
D,1
D,2
C,1
C,3
B,1
B,3
A,1
A,4
我建议导入数据并使用Pandas http://pandas.pydata.org/
对其进行排序import pandas as pd
# Read in the data
# Replace <FULL_PATH_OF FILE> with something like C:/Data/RaceDetails.csv
# The first row is automatically used for column names
data=pd.read_csv("<FULL_PATH_OF_FILE>")
# Sort the data
sorted_data=data.sort(['Placement','Name'])
# Create a re-indexed data frame if you so desire
sorted_data_new_index=sorted_data.reset_index(drop=True)
这给了我:
Name Placement
A 1
B 1
C 1
D 1
D 2
B 3
C 3
A 4
我会让你弄清楚剩下的......
答案 1 :(得分:0)
正如@Jack所说,如果你不发布代码或txt文件,我将非常有限。但是,之前我遇到过类似的问题,所以我知道基础知识(再次,我需要代码/文件才能给出一个确切的类型 - 这个东西的答案!)
您可以自己开发算法,也可以使用内置的sorted
功能
将名称和分数放在列表(或词典)中,例如:
name_scores = [['Matt', 95], ['Bob', 50], ['Ashley', 100]]
然后调用sorted(name_scores)
,它将按名称排序:[['Ashley', 100], ['Bob', 50], ['Matt', 95]]