Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import re
- import sys
- def get_numbers(string):
- """
- Get numbers from string. Works if separated by commas...
- >>> get_numbers('1, 2, 3,4')
- [1, 2, 3, 4]
- ...and hyphens:
- >>> get_numbers('1-2 - 3-4')
- [1, 2, 3, 4]
- Ignores numbers in parentheses:
- >>> get_numbers('1-2 (8) - 3 (10) -11.')
- [1, 2, 3, 11]
- """
- string = re.sub('\(\d+\)', '', string)
- parts = [s for s in re.split('\D', string) if s]
- return [int(s) for s in parts]
- def get_repeated(list1, list2):
- """
- Get the repeating numbers from two lists:
- >>> get_repeated([1, 2, 3, 4, 5, 6], [2, 4, 6, 8, 10])
- [2, 4, 6]
- REturns sorted:
- >>> get_repeated([6, 5, 2, 3, 4, 1], [10, 4, 2, 8, 6])
- [2, 4, 6]
- """
- s1 = set(list1)
- s2 = set(list2)
- return sorted(s1 & s2)
- def join_numbers(l):
- """
- Join the numbers with hyphens:
- >>> join_numbers([1, 4, 2, 3])
- '1 - 4 - 2 - 3'
- """
- return ' - '.join(str(v) for v in l)
- if __name__ == "__main__":
- f1 = open(sys.argv[1])
- f2 = open(sys.argv[2])
- c1 = get_numbers(f1.read())
- c2 = get_numbers(f2.read())
- intersection = get_repeated(c1, c2)
- print(join_numbers(intersection))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement