Guest User

Untitled

a guest
Feb 3rd, 2018
4,819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. 1. gpk@site.com for 716745165214@kdf.net kglk@mail.ru lkjl@list.ru ncv@gmail.com
  2. 2. несколько тысячи строк
  3.  
  4. #! /usr/bin/env python3.6
  5. # -*- coding: utf-8 -*-
  6. def reader(fname):
  7. d={}
  8. fromto={}
  9. df=[]
  10.  
  11. file = open(fname,"r")
  12. for line in file:
  13. # print (line)
  14. ll=line.strip().split('for')
  15. sfrom=''.join(ll[0].split())
  16. sto=ll[1].split()
  17. if sfrom in fromto: # почему-то проверка не рботает
  18. df = fromto[sfrom]
  19.  
  20. for i in range(len(sto)):
  21. df.append(sto[i])
  22.  
  23. fromto[sfrom]= df
  24. df.clear()
  25.  
  26. print(fromto)
  27.  
  28. if __name__ == '__main__':
  29. reader('list-100.list')
  30.  
  31. text = """
  32. 1. gpk@site.com for 716745165214@kdf.net kglk@mail.ru lkjl@list.ru ncv@gmail.com
  33. 2. abc@site.com for site@site.ru lkjl@list.com
  34. """
  35.  
  36. from collections import defaultdict
  37. from_by_to_list = defaultdict(list)
  38.  
  39. for line in text.splitlines():
  40. line = line.strip()
  41. from_str, to_str = line.split('for')
  42.  
  43. from_str = from_str.strip().split()[1]
  44. to_list = to_str.strip().split()
  45.  
  46. from_by_to_list[from_str] += to_list
  47.  
  48. print(from_by_to_list)
  49. print()
  50.  
  51. for k, items in from_by_to_list.items():
  52. print('{} ({}):'.format(k, len(items)))
  53. for i, x in enumerate(items, 1):
  54. print(' {}. {}'.format(i, x))
  55.  
  56. print()
  57.  
  58. defaultdict(<class 'list'>, {'gpk@site.com': ['716745165214@kdf.net', 'kglk@mail.ru', 'lkjl@list.ru', 'ncv@gmail.com'], 'abc@site.com': ['site@site.ru', 'lkjl@list.com']})
  59.  
  60. gpk@site.com (4):
  61. 1. 716745165214@kdf.net
  62. 2. kglk@mail.ru
  63. 3. lkjl@list.ru
  64. 4. ncv@gmail.com
  65.  
  66. abc@site.com (2):
  67. 1. site@site.ru
  68. 2. lkjl@list.com
  69.  
  70. from collections import Counter
  71.  
  72. log = """
  73. gpk@site.com for 716745165214@kdf.net kglk@mail.ru lkjl@list.ru ncv@gmail.com
  74. gpk2@site.com for 7167451652142@kdf.net kglk2@mail.ru lkjl2@list.ru ncv2@gmail.com
  75. gpk@site.com for 716745165214@kdf.net kglk@mail.ru lkjl@list.ru ncv@gmail.com
  76. """
  77.  
  78. pairs = []
  79. for line in log.splitlines():
  80. tmp = line.split()
  81. from_user = tmp[0]
  82. pairs.extend((from_user, to_user) for to_user in tmp[2:])
  83.  
  84. c = Counter(pairs)
  85. print(c)
Add Comment
Please, Sign In to add comment