Advertisement
furas

Python - ???

May 23rd, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.73 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. def read_follows():
  4.     file_follows = open("dummy-data-1/follows.txt")
  5.  
  6.     result = dict()
  7.  
  8.     for line in file_follows:
  9.         words = line.split()
  10.         result[words[0]] = words[1:]
  11.    
  12.     file_follows.close()
  13.    
  14.     return result
  15.  
  16.  
  17. def count_follows(data):
  18.  
  19.     result = dict()
  20.  
  21.     for user, followers in data.items():
  22.         result[user] = len(followers)
  23.    
  24.     return result
  25.  
  26.  
  27. #--------------------------------------------------------------------  
  28.  
  29. # read file and create dict: data[user] = followers
  30. users_followers = read_follows()
  31.  
  32. # create dict: data[user] = len(followers)
  33. users_count_followers = count_follows(users_followers)
  34.  
  35. #--------------------------------------------------------------------  
  36.  
  37. # find max followers (number)
  38. max_follows = max(users_count_followers.values())
  39.  
  40. #users_max_follows = list()
  41. #
  42. #for name, value in users_count_followers.items():
  43. #    if value == max_follows:
  44. #        users_max_follows.append(name)
  45.  
  46. # find users with max followers
  47. users_max_follows = [name for name, value in users_count_followers.items() if value == max_follows]
  48.  
  49. users_max_follows.sort()
  50.  
  51. print( '\n'.join(users_max_follows) )
  52.  
  53. #--------------------------------------------------------------------  
  54.  
  55. print('---')
  56. n = int(input('Enter n: '))
  57.  
  58. # get users which has less then `n` followers
  59. users_filtered = [(value, name) for name, value in users_count_followers.items() if value < n]
  60.  
  61. names_sorted = sorted(users_filtered, reverse=True)
  62.  
  63. print('--- count, user ---')
  64. for value, name in names_sorted:
  65.     print(value, name)
  66.  
  67. print('--- count, followers ---')
  68. for value, name in names_sorted:
  69.     print(value, ' '.join(users_followers[name]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement