Форум сайта python.su
Здраствуйте! Стоит задача: Напишите функцию, которая принимает список и число. Функция должна разбить список на 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 частей и выполнить проверку?
Офлайн
VladimirDeg
[code python]между этими тегами вставлять код на форуме[/code]
С остатком-то что делать? Добавлять в тот же список или откидывать?
Отредактировано Palrom (Июнь 16, 2022 20:26:58)
Офлайн
Здравствуйте, добавить!
Офлайн
lst = ['red', 'blue', 'dark', 'green', 'black', 'yellow', 'brown', 'white', 'grey', 'orange', 'bright', 'purple', 'etc'] number = 5 def func(lst, number): temp = [] if number > len(lst): print('Число больше длины списка') return False elif number <= 0: print('Число меньше или равно 0') return False step = round(len(lst) / number) for i in range(0, len(lst), step): temp.append(lst[i: step + i]) return temp print(func(lst, number))
Офлайн
спасибо
Офлайн
Не знаю, разумно ли использовать это в рабочей программе, но есть вот такой известный хак в питоне. Как минимум это будет полезно разобрать и понять почему это вообще работает
l = "abcdefghijklmnop" peaces = 3 print(list(zip(*([iter(l)] * peaces))))
Офлайн
FishHookДля меня это сложно ) Пока только учусь
и понять почему это вообще работает
Офлайн
FishHookЭто прям жоско.print(list(zip(*([iter(l)] * peaces))))
Функция должна разбить список на N кусков, переданных в функцию в качестве второго аргументаКто придумал этот изврат я хз, но пришлось переписывать всё.
Офлайн
FishHookЯ добавил букву q и всё слетелоl = "abcdefghijklmnop" peaces = 3 print(list(zip(*([iter(l)] * peaces))))
>>> 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')] >>>
Офлайн
py.user.nextмолодец!
Я добавил букву q
Офлайн