Задать вопрос
@tofel

Как объединить данные в списке?

День добрый нужна помощь есть список пытаюсь объединить данные
a=['Миша', '5', '55', '120', 'Хуан', '0', '4', 'Ваня', '6', '4', '1', 'Педро', '2.35', '3.40']

n = 4
f=list(zip(*[iter(a)]*n))
print(f)
[('Миша', '5', '55', '120'), ('Хуан', '0', '4', 'Ваня'), ('6', '4', '1', 'Педро')]

И если с Мишей все в порядке. То на Хуане начинается все съежать ибо там меньше данных. Вопрос вот в чем, как сделать так, чтобы выходе получался правильный список?
[('Миша', '5', '55', '120'), ('Хуан', '0', '4'), ('Ваня', '6', '4', '1'), ('Педро', '2.35', '3.40')]
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой Комментировать
Ответ пользователя Yura Khlyan К ответам на вопрос (3)
@MAGistr_MTM
Учусь программировать
def test(a):
    start = 0
    result = []
    for i, item in enumerate(a[1:]):
        if not item.replace('.', '', 1).isdigit():  # to handle float
            end = i
            result.append(a[start:end + 1])
            start = end + 1
    result.append(a[start:])
    return result

Это если брать во внимание, если значение не число, то оно должно начинать новый список
Ответ написан
Комментировать