我创建了一个程序,该程序读取couchDB以列出单个Twitter用户的关注者和朋友ID。朋友在“friend_edges”组和“follower_edges”下的粉丝下被识别。
我使用sets -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
答案 0 :(得分:3)
return语句停止执行该方法并返回到调用方法,因此通过添加一个你要说的return语句,&#34;停在这里并返回到你来自的地方&#34;
您需要将要返回的值存储在变量中,并在方法结束时同时返回它们:
return value1, value2
你会用这样的话来称呼它:
val1, val2 = get_value1_and_value2(input)
将它分解为两个单独的方法可能更有意义,每个方法都会返回正确的值。