import numpy as np
def split_receivers(receivers, senders):
count_for_sender = int(len(receiver) / len(sender))
chunk_count = int(len(receivers) / count_for_sender)
chunked_receivers = np.array_split(receivers, chunk_count)
return {s: r.tolist() for s, r in zip(senders, chunked_receivers)}
receiver = ['receiver1@mail.ru', 'receiver2@mail.ru', 'receiver3@mail.ru', 'receiver4@mail.ru', 'receiver5@mail.ru']
sender = ['sender1@mail.ru', 'sender@mail.ru']
split_receivers(receiver, sender)
# {'sender1@mail.ru': ['receiver1@mail.ru', 'receiver2@mail.ru', 'receiver3@mail.ru'], 'sender@mail.ru': ['receiver4@mail.ru', 'receiver5@mail.ru']}
def split_list(l: list, n: int):
return [l[i::n] for i in range(n)]
receivers = [f'receiver{i}@mail.ru' for i in range(77)] # 77 получателей
senders = [f'sender{i}@mail.ru' for i in range(5)] # 5 отправителей
chunked_receivers = split_list(receivers, len(senders))
result = {s: r for s, r in zip(senders, chunked_receivers)}
*args
, **kwargs
?lst[:] = [1, lst, 7, lst]
lst = [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
, после чего он присваивается (считай привязывается) к переменной lst
. То есть на данный момент у тебя есть переменная lst
которая ссылается на объект списка.lst[:] = [1, lst, 7, lst]
[1, lst, 7, lst]
, в котором помимо объектов int
есть еще и ссылки lst
, то есть не объекты, на которые ссылается эта переменная, а именно сама переменная, то есть ссылка. После чего ты переопределяешь переменную lst
, в том числе внутри списка. In [1]: a = [1, 2, 3]
In [2]: b = a
In [3]: b.append(4)
In [4]: b
Out[4]: [1, 2, 3, 4]
In [5]: a
Out[5]: [1, 2, 3, 4]
В чем причина?!
ru_riddles = riddles.query.filter(riddles.ruText.ilike(q)).all()