VladimirDeg
Июнь 16, 2022 18:21:33
Здраствуйте! Стоит задача: Напишите функцию, которая принимает список и число. Функция должна разбить список на N кусков, переданных в функцию в качестве второго аргумента. Выполнить проверки по здравому смыслу (например, нет смысла пытаться разбить список из 3 элементов на 4 элемента)
lst = “red”, “blue”, “dark”
number = 5
def func(lst, number):
string = “ ”.join(lst)
lst2 = string.split()
print(lst2, number) func(lst, number)
Как разбить на N частей и выполнить проверку?
Palrom
Июнь 16, 2022 20:24:23
VladimirDeg
[code python]между этими тегами вставлять код на форуме[/code]
С остатком-то что делать? Добавлять в тот же список или откидывать?
FishHook
Июнь 20, 2022 10:46:35
Не знаю, разумно ли использовать это в рабочей программе, но есть вот такой известный хак в питоне. Как минимум это будет полезно разобрать и понять почему это вообще работает
l = "abcdefghijklmnop"
peaces = 3
print(list(zip(*([iter(l)] * peaces))))
VladimirDeg
Июль 3, 2022 09:11:19
FishHook
и понять почему это вообще работает
Для меня это сложно ) Пока только учусь
Palrom
Июль 3, 2022 13:48:50
FishHook
print(list(zip(*([iter(l)] * peaces))))
Это прям жоско.
Это задание с подвохом на самом деле. Я сначала тоже набросал функцию которая разбивает список на куски из N-количества строк, и уже почти запостил, как вдруг решил перечитать ещё раз задание, а там нужно:
Функция должна разбить список на N кусков, переданных в функцию в качестве второго аргумента
Кто придумал этот изврат я хз, но пришлось переписывать всё.
py.user.next
Июль 3, 2022 14:41:00
FishHook
l = "abcdefghijklmnop"
peaces = 3
print(list(zip(*([iter(l)] * peaces))))
Я добавил букву q и всё слетело
>>> l = "abcdefghijklmnopq"
>>> peaces = 3
>>> print(list(zip(*([iter(l)] * peaces))))
[('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i'), ('j', 'k', 'l'), ('m', 'n', 'o')]
>>>
Где буквы p и q?