2011-03-06 10 views
5

Sto costruendo una rapida parte della mia app che esamina i follower di un utente e evidenzia quelli seguiti dalle persone che l'utente segue (amici).Visualizzazione dei follower di Twitter seguiti dagli amici in Python/Django

mi chiedo due cose:

  1. C'è un modo più efficiente per fare questo? Sembra che ciò comporterà limiti API di Twitter perché ho bisogno di controllare gli amici di tutti gli amici dell'utente.

  2. Questo sta creando un elenco di dict contenente l'ID dell'amico e i follower che seguono. Invece, il ditt sarebbe meglio come id seguace e poi gli amici che li seguono. Suggerimenti?

Codice:

# 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 }) 

risposta

1

Per la seconda parte della tua domanda:

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) 

che si tradurrà in un dizionario con:

chiavi = ids seguaci che seguono il utente, che l'utente non segue, e sono seguiti dagli amici dell'utente.

valori = elenco di id di amici che seguono l'inseguitore, che l'utente non segue

per esempio se follower dell'utente ha un id di 23 e due amici dell'utente (utente 16 e utente 28) seguire l'utente 23, utilizzando la chiave 23 dovrebbe dare il seguente risultato

>>> followers_that_friends_follow[23] 
[16,28] 
Problemi correlati