我正在构建我的应用程序的快速部分,该应用程序会查看用户的关注者,并突出显示用户关注的人(朋友)所遵循的部分。
我想知道两件事:
有更有效的方法吗?似乎这样会影响Twitter的API限制,因为我需要检查每个用户朋友的朋友。
这是创建一个包含朋友ID及其关注的关注者的词典列表。相反,dict会更好地作为跟随者ID然后跟随他们的朋友。提示?
代码:
# 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 })
答案 0 :(得分: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)
将导致字典包含:
keys = ids跟随用户的关注者,用户没有关注,并且跟随用户的朋友。
values =跟随关注者的朋友的id列表,用户不关注
例如,如果用户的关注者的id为23且用户的两个朋友(用户16和用户28)跟随用户23,则使用键23应该给出以下结果
>>> followers_that_friends_follow[23]
[16,28]