I intend to send message to many numbers, but this is my code and issue (code is made shorter and required lines are here):
msg = 'test message'
phone_numbers = ['+989111111111', '+989111111112', '+989111111113', '+989111111114']
hours = range(0, 25)
minutes = range(0, 60)
for phone_number in phone_numbers:
for hour in hours:
for minute in minutes:
sndmsg(phone_number, msg, hour, minute)
I know my way is incorrect, because this is the output but I’m not sure how to solve this. Googling this did not help me.
Output:
test message to +989111111111 will be sent on 0 0 test message to +989111111111 will be sent on 0 1 test message to +989111111111 will be sent on 0 2 ... test message to +989111111112 will be sent on 0 0 test message to +989111111112 will be sent on 0 1 test message to +989111111112 will be sent on 0 2
My desired output would be like:
test message to +989111111111 will be sent on 0 0 test message to +989111111112 will be sent on 0 1 test message to +989111111113 will be sent on 0 3
I want to send the message to each number in each minute like the above output, how may I reach this?
Advertisement
Answer
Try using a generator for the hours and minutes and zip with the phone number:
msg = 'test message'
phone_numbers = ['+989111111111', '+989111111112', '+989111111113', '+989111111114']
def gen_hour_min():
hours = range(0, 25)
for hour in hours:
minutes = range(0, 60)
for minute in minutes:
yield hour, minute
for phone_number, hour_min in zip(phone_numbers, gen_hour_min()):
hour, minute = hour_min
print(phone_number, hour, minute)