Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import datetime
- from random import shuffle
- from collections import OrderedDict
- def date_range(start_date, end_date):
- """
- returns a datetime object for a range of dates
- """
- if start_date <= end_date:
- for dt in range( ( end_date - start_date ).days + 1 ):
- yield start_date + datetime.timedelta( dt )
- else:
- for dt in range( ( start_date - end_date ).days + 1 ):
- yield start_date - datetime.timedelta( dt )
- def date_dict(start_date, end_date):
- """
- creates a dictionary where the keys are
- dates from the supplied range with the
- order preserved
- """
- dt_dict = OrderedDict()
- for date in date_range(start_date, end_date):
- dt_dict[str(date)] = ''
- return dt_dict
- def random_list2dict_apply(my_dict, my_list):
- """
- takes a list and shuffles it, then puts it
- in to the key values of the supplied dictionary
- when a list item is applied, it is then popped,
- when the list runs out, it is refreshed and the
- process starts over again until the end of the
- dictionary
- """
- shfl_lst = list(my_list)
- shuffle(shfl_lst)
- for key in my_dict:
- if len(shfl_lst) != 0:
- my_dict[key] = shfl_lst[0]
- shfl_lst.pop(0)
- else:
- shfl_lst = list(my_list)
- shuffle(shfl_lst)
- my_dict[key] = shfl_lst[0]
- shfl_lst.pop(0)
- return my_dict
- def main():
- start_date = datetime.date( year = 2017, month = 2, day = 1 )
- end_date = datetime.date( year = 2017, month = 3, day = 1 )
- arbitrary_list = ['Davidson', 'Gabrielle', 'Shane']
- dt_range_dict = date_dict(start_date, end_date)
- randomized_value_dict = random_list2dict_apply(dt_range_dict, arbitrary_list)
- for key, value in randomized_value_dict.items():
- print (key, value)
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement