2011-03-06 18 views
5

में मित्रों द्वारा क्या किया जाता है, मैं अपने ऐप का एक त्वरित हिस्सा बना रहा हूं जो उपयोगकर्ता के अनुयायियों को देखता है, और उन लोगों द्वारा हाइलाइट किया जाता है जो उपयोगकर्ता अनुसरण करते हैं (दोस्तों)।दिखा रहा है कि ट्विटर के अनुयायियों को पाइथन/Django

  1. वहाँ यह करने के लिए एक अधिक कुशल तरीका है:

    मैं दो बातें सोच रहा हूँ? ऐसा लगता है कि यह ट्विटर की एपीआई सीमाएं चलाएगा क्योंकि मुझे उपयोगकर्ता के दोस्तों के दोस्तों की जांच करने की ज़रूरत है।

  2. यह दोस्त आईडी और उनके अनुयायियों वाले अनुयायियों की एक सूची बना रहा है। इसके बजाए, अनुयायी आईडी और फिर उनके अनुसरण करने वाले मित्र के रूप में निर्देश बेहतर होगा। युक्तियाँ?

कोड:

# 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

अपने प्रश्न के दूसरे भाग के लिए:

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) 

कि के साथ एक शब्दकोश में परिणाम होगा:

कुंजी = आईडी अनुयायियों का पालन करें कि उपयोगकर्ता, कि उपयोगकर्ता का पालन नहीं करता है, और उसके बाद उपयोगकर्ता के दोस्तों का पालन किया जाता है।

मूल्यों = आईडी मित्र कि अनुयायी पालन की की सूची में, उस उपयोगकर्ता का पालन नहीं करता

उदाहरण के लिए

यदि उपयोगकर्ता के अनुयायी उपयोगकर्ता के दोस्तों (उपयोगकर्ता 16 और उपयोगकर्ता 28 में से दो 23 साल की एक आईडी और है) उपयोगकर्ता 23 का पालन करें, कुंजी 23 का उपयोग करके निम्नलिखित परिणाम

>>> followers_that_friends_follow[23] 
[16,28] 
संबंधित मुद्दे