2014-09-02 32 views
0

我創建了一個程序,讀取couchDB列出單個twitter用戶的關注者和朋友id。朋友在「friend_edges」組下標識,在「follower_edges」下標識關注者。python:從打印更改爲返回不處理項目正確

我使用set -set1.intersection(set.2)之間的交集操作 - 以獲得那些既是朋友又是追隨者的列表。

當我使用print來查看輸出時,結果是正確的。但是當我更改爲return來處理結果時,它只處理朋友,而不是追隨者。

有人可以給我一個線索,說明我做錯了什麼,以及如何改進代碼?....提前致謝。

from twitter_login import oauth_login 
from twitter_DB import load_from_DB 
from sets import Set 


def friends_and_followers(doc): 
    if 'friend_edges' in doc.keys(): 
     flist = []   
     for x in doc['friend_edges']: 
      flist.append(x) 
     #print "Number of friends: ", len(flist) <-- shows the right number of items 
     return flist 
    else: 
     return [] 

    if 'follower_edges' in doc.keys(): 
     followlist = []   
     for x in doc['follower_edges']: 
      followlist.append(x) 
     #print "Number of followers: ", len(followlist) <-- shows the right number of items 
     return followlist 
    else: 
     return [] 

    flist = Set(flist) 
    followlist = Set(followlist) 
    return flist.intersection(followlist) 



if __name__ == '__main__': 
    twitter_api = oauth_login() 
    DBname = 'users-aguy-+-only' 
    ff_results = load_from_DB(DBname) 
    print 'number loaded', len(ff_results) 

    for doc in ff_results: 
     together = friends_and_followers(doc) 
     print "Friends and followers of a guy: ", together 

回答

3

return語句停止該法的執行,並返回到調用的方法,所以加入了return語句你說,「停在這兒,回到你原來的地方」

您需要來存儲你想要的數值變量返回,並在同一時間,在你的方法的最後返回他們:

return value1, value2 

你會的東西稱之爲是這樣的:

val1, val2 = get_value1_and_value2(input) 

把它分成兩個單獨的方法可能會更有意義,每個方法都會返回正確的值。