#python #twitter
#python #Twitter
Вопрос:
Мне нужна помощь в этом:
Я создал этот код на python, но я не нахожу способа улучшить его и сделать короче, поскольку некоторые шаги повторяются. Это то, что у меня получилось на данный момент. Что я пытаюсь сделать, так это сначала получить подписчиков из списка ранних пользователей, затем получить подписчиков подписчиков и проделать тот же шаг еще три раза.
early_adopters = ['user_ID_1', 'user_ID_2']
users_follower = [] # list of every followers from early adopters
follower_list = [] # list of pairs of users (early_apdoter, follower)
for usr in early_adopters:
for user in tweepy.Cursor(api.followers, user_id = usr).items(3):
if user.id not in early_adopters:
users_follower.append(user.id_str)
follower_list.append((usr,user.id_str))
users_follower_S1 = random.choices(users_follower, k=3) # sample of user from the first surface follower_list_search
follower_list_1 = [] #list of pair of followers of followers
s2_follower_list = [] # list of pairs of users (early_apdoter, follower)
for usr_s1 in users_follower_S1:
for user in tweepy.Cursor(api.followers, user_id = usr_s1).items(3):
if user.id_str not in follower_list and usr_s1 not in early_adopters:
follower_list_1.append(user.id_str)
s2_follower_list.append((usr_s1, user.id_str))
users_follower_S2 = random.choices(follower_list_1, k=3) # Repeat the same process above but for the second surface
follower_list_2 = []
s3_follower_list = []
for usr_s2 in users_follower_S2:
for user in tweepy.Cursor(api.followers, user_id = usr_s2).items(3):
if user.id_str not in follower_list and usr_s2 not in early_adopters:
follower_list_2.append(user.id_str)
s3_follower_list.append((usr_s2, user.id_str))
users_follower_S3 = random.choices(follower_list_2, k=3) # Repeat the same process above but for the second surface
follower_list_3 = []
s4_follower_list = []
for usr_s3 in users_follower_S3:
for user in tweepy.Cursor(api.followers, user_id = usr_s3).items(3):
if user.id_str not in follower_list and usr_s3 not in early_adopters:
follower_list_3.append(user.id_str)
s4_follower_list.append((usr_s3, user.id_str))
Заранее спасибо!!
Ответ №1:
Возможно, обернуть повторяющийся код в функцию, например:
def getFollowers(users)
followers = []
follower_pairs = []
for usr in users:
for user in tweepy.Cursor(api.followers, user_id = usr).items(3):
if user.id not in users and user.id not in early_adopters:
followers.append(user.id_str)
follower_pairs.append((usr,user.id_str))
return (followers, follower_pairs)
Пример использования:
early_adopters = ['user_ID_1', 'user_ID_2']
users_follower, follower_list = getFollowers(early_adopters)
Возможно, я чего-то не понимаю в вашей логике, но это мое общее предложение.
Комментарии:
1. Спасибо за ваше время. Я думаю, что здесь мы просто получаем подписчиков из списка, но нам все еще не хватает подписчика из подписчиков
2. @sarandonga2912 Для «второго раунда», я полагаю, вы можете вызвать,
users_follower2, follower_list2 = getFollowers(users_follower)
где аргументusers_follower
является результатом «первого раунда». Имеет смысл?3. Да, это имеет смысл. Спасибо!