2011-03-06 8 views
5

私は、ユーザーのフォロワーを見て、ユーザーがフォローしているユーザー(友人)の後ろにハイライトを表示するアプリケーションの素早い部分を構築しています。Twitterフォロワーの後ろにPython/Djangoの友達がいることを示す

私は二つのことを思ったんだけど:

  1. これを行うには、より効率的な方法はありますか?このように思えば、TwitterのAPIの制限が上がるだろう。ユーザーの友だちごとに友達を確認する必要があるからだ。

  2. これは、友人IDとそれに従うフォロワーを含むディクテーションのリストを作成しています。代わりに、dictはフォロワーIDとそれに従う友人の方が良いでしょう。ヒント?

コード:

import collections 

followers_that_friends_follow = collections.defaultdict(list) 
for f in friends: 
    ff = api.GetFriendsIDs(f)['ids'] 
    users = followers_not_friends.intersection(ff) 
    for user in users: 
     followers_that_friends_follow[user].append(f) 

と辞書になります:あなたの質問の後半部分については

# Get followers and friends 
followers = api.GetFollowerIDs()['ids'] 
friends = api.GetFriendIDs()['ids'] 

# Create list of followers user is not following 
followers_not_friends = set(followers).difference(friends) 

# Create list of which of user's followers are followed by which friends 
followers_that_friends_follow = [] 
for f in friends: 
    ff = api.GetFriendIDs(f)['ids'] 
    users = followers_not_friends.intersection(ff) 
    followers_that_friends_follow.append({'friend': f, 'users': users }) 

答えて

1

従う

キー= IDSフォロワーユーザがフォローしていないこと、ユーザの友人がフォローされていることを示します。ユーザのフォロワー23のIDおよびユーザの友人(ユーザ16とユーザ28のうちの2つを持っている場合、ユーザは、例えば

に従わないこと

値=フォロワに従う友人のIDのリスト、 )ユーザ23に従います。キー23を使用すると、次の結果が得られます。

>>> followers_that_friends_follow[23] 
[16,28] 
関連する問題