Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def parse_numbers(numbers_string):
- return [int(n.strip()) for n in numbers_string.split(',')]
- assert parse_numbers('1, 2, 3') == [1, 2, 3]
- def parse_language(language_string):
- language, numbers_string = language_string.split(':')
- return language.strip(), parse_numbers(numbers_string)
- assert parse_language('English : 1, 2, 3') == ('English', [1, 2, 3])
- def split_languages(languages):
- return [language.strip() for language in languages.split(';')]
- assert (
- split_languages('English : 1, 2; Dutch : 5, 7') ==
- ['English : 1, 2', 'Dutch : 5, 7']
- )
- def parse_languages(languages):
- return dict(
- parse_language(language)
- for language in split_languages(languages)
- )
- assert (
- parse_languages('English : 1, 2; Dutch : 5, 7') ==
- {
- 'English' : [1, 2],
- 'Dutch' : [5, 7]
- }
- )
- def parse_category(category_tuple):
- category, languages = category_tuple
- return category, parse_languages(languages)
- assert (
- parse_category( ('person', 'English : 1, 2; Dutch : 5, 7') ) ==
- (
- 'person',
- {
- 'English' : [1, 2],
- 'Dutch' : [5, 7]
- }
- )
- )
- def parse_tuples(tuples):
- return dict(parse_category(category) for category in tuples)
- if __name__ == "__main__":
- tuplist = [('person', u'English : 1, 2, 3 ; Dutch : 5, 6, 7'), ('home', u'English : 8, 9, 10; Dutch: 11, 12, 13')]
- print parse_tuples(tuplist)
Add Comment
Please, Sign In to add comment