Python排序和组织

时间:2015-04-24 21:15:43

标签: python list sorting text-files

我试图从文件中对数据进行排序而不是安静地获取我需要的内容。我有一个带有种族详细信息的文本文件(名称位置(即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

2 个答案:

答案 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]]