2012-11-19 68 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