@Woshibai

Как разделить список на список список списков?

Имеется список: [1,2,3,4,5,6]
Как разделить его на [[1,2],[3,4],[5,6]] как можно короче?
  • Вопрос задан
  • 3968 просмотров
Решения вопроса 1
ri_gilfanov
@ri_gilfanov
Web- and desktop-developer
Как-то так:
l = [1, 2, 3, 4, 5, 6]
l = [[l[i], l[j]] for i, j in zip(range(0, len(l) - 1, 2), range(1, len(l), 2))]
print(l)


Update. По наводке aRegius о срезах, вариант с zip() можно сократить так:
l = [1, 2, 3, 4, 5, 6]
l = [[i, j] for i, j in zip(l[0::2], l[1::2])]
print(l)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
adugin
@adugin Куратор тега Python
Чуть ли не каждый день этот вопрос задают. Это классический "трюк" на Python, между прочим:
list(zip(*[iter(lst)]*2))
Ответ написан
@dmshar
Ну, если как можно кратко - то вот так:
lt=np.reshape(np.array([1,2,3,4,5,6]), (3, 2)).tolist()
print(lt)

Результат:
[[1, 2], [3, 4], [5, 6]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы