2012-11-19 42 views
0

我有,我现在使用此功能如何排序数据库

def ReadAndMerge(): 
    library1=input("Enter 1st filename to read and merge:") 
    with open(library1, 'r') as library1names: 
     library1contents = library1names.read() 
    library2=input("Enter 2nd filename to read and merge:") 
    with open(library2, 'r') as library2names: 
     library2contents = library2names.read() 

    print(library1contents) 
    print(library2contents) 
    combined_contents = library1contents + library2contents # concatenate text 

    print(combined_contents) 
    return(combined_contents) 

两个数据库最初看起来像这样

Bud Abbott 51 92.3 
Mary Boyd 52 91.4 
Hillary Clinton 50 82.1 

相结合的数据库,这

Don Adams 51 90.4 
Jill Carney 53 76.3 
Randy Newman 50 41.2 

后结合他们现在看起来像这样

Bud Abbott 51 92.3 
Mary Boyd 52 91.4 
Hillary Clinton 50 82.1 
Don Adams 51 90.4 
Jill Carney 53 76.3 
Randy Newman 50 41.2 

如果我想按姓氏排序这个数据库我会怎么做呢? 是否有一个内置python列表的排序函数?这是否被视为一个列表? 或我将不得不使用另一个函数来查找姓氏,然后按字母顺序排列它们

+0

您正在使用哪个数据库? –

+0

我不知道我是否明白你在问什么,我是新来的编码,所以我很抱歉,如果我用错了词。他们只是保存在我的电脑上的.txt文件 – spenman

+0

对不起,我认为你在使用某个数据库。我已更新我的答案 –

回答

2

您可以使用sorted()方法进行排序。但是,你不能排序一个大的字符串,你需要将数据放在一个列表或类似的东西里。像这样(未经测试):

def get_library_names(): # Better name of function 
    library1 = input("Enter 1st filename to read and merge:") 
    with open(library1, 'r') as library1names: 
     library1contents = library1names.readlines() 
    library2=input("Enter 2nd filename to read and merge:") 
    with open(library2, 'r') as library2names: 
     library2contents = library2names.readlines() 

    print(library1contents) 
    print(library2contents) 
    combined_contents = sorted(library1contents + library2contents) 

    print(combined_contents) 
    return(combined_contents) 
+0

更好,把这些线条放入对象。 (名称:“Bud Abbott”,SomeNumber:51,SomeFloat:92.3) –

+0

@crapman:这是下一步。爬行前等爬行:-) –

+0

你的回答按每个单独的字符排序,我把它的名字和数字组合成了这个['\ n','\ n','\ n','\ n', '\ n','\ n','','','','','','','','','','','','','','' ','','','','','。','。','。','。','。','。','0','0','0',' 1,1,1,1,1,2,2,2,2,3,3,3,4 '','4','4','5','5','5','5','5','5','6','7','8','9',' '9','9','A','A','B','B','C','C','D','H','J','M','N ','R','a','a','a','a','a','a','b','b','d','d','d', 'd','e','e','i','i]还有更多,但不会全部适合 – spenman