Как разделить список на части python
Перейти к содержимому

Как разделить список на части python

  • автор:

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

Есть два списка с элементами, в первом множество значений, например — [100,200,1200,1500,2000] , во втором одно значение [2] . Как разделить первый список на две части, что бы в первой части оказались все элементы списка до индекса 2 — (цифра из второго списка) а в другом списке все элементы с индексами >= 2? На входе:

y=[100,200,1200,1500,2000]; z=[2] 
y1=[100,200]; y2=[1200,1500,2000] 

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

1. Что значит «короче»?
2. Где в вашем примере «список список списков»?
3. По какому принципу вы поделили свой исходный список? И почему вы выбрали именно такой вариант, а не [[1,2,3],[4,5,6]] например?

Woshibai @Woshibai Автор вопроса

dmshar, 1) Как можно более кратко.
2) Может, не так слова подобрал. Но я привел пример, который, надеюсь, понятен.
3) Потому что так надо.

Решения вопроса 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 Комментировать
Ответы на вопрос 2

adugin

Andrey Dugin @adugin Куратор тега Python

Чуть ли не каждый день этот вопрос задают. Это классический «трюк» на Python, между прочим:
list(zip(*[iter(lst)]*2))

Ответ написан более трёх лет назад
Нравится 3 8 комментариев

phaggi

Алан Гибизов @phaggi Куратор тега Python

Тааак, это надо осмыслить хорошенько 🙂
У меня вот такое получилось:
[[lst[i], lst[i+1]] for i in range(0,len(lst),2)]
В лоб, так сказать.

phaggi

Алан Гибизов @phaggi Куратор тега Python

Andrey Dugin, а там унутре вместо списка получается ведь кортеж.
может, так?
list(map(list, list(zip(*[iter(lst)]*2))))

Как правильно разделить список, состоящий из нескольких списков?

У меня есть список, состоящий из нескольких списков внутри, по типу:
[[‘t’, ‘e’, ‘k’, ‘s’, ‘t’], [‘d’, ‘l’, ‘y’, ‘a’], [‘p’, ‘r’, ‘i’, ‘m’, ‘e’, ‘r’, ‘a’]]
буквы разделены намеренно, вопрос следующий, как мне достать каждый список из этого большого, чтобы в последующем с ним работать? (с условием того, что количество списков внутри большого списка неизвестно и может меняться в зависимости от вводимых данных)

import string def high(x): result = [] alphabet = string.ascii_lowercase numbers_keys = [] for i in range(len(alphabet)): numbers_keys.append(i) numbers_keys.remove(0) numbers_keys.append(26) score = lst_words = [] x = x.split() for i in x: lst_words.append(list(i)) new_lst = [] for i in lst_words: for n in range(len(i)): result.append(score[i[n]]) print(result) high('tekst dlya primera')

ожидалось, что вывод будет схож со списком, который я представил в начале, но в итоге выходит: [20, 5, 11, 19, 20, 4, 12, 25, 1, 16, 18, 9, 13, 5, 18, 1]

  • Вопрос задан 05 сент. 2023
  • 420 просмотров

7 комментариев

Простой 7 комментариев

Разделить один список на два списка

Author24 — интернет-сервис помощи студентам

Ваша программа должна разделить один список на два и поместить их в новый список. Т.е. в итоге должен получиться список из 2-х списков.

Если в начальном списке нечетное количество элементов, то в первом списке должно быть больше элементов.

Если в списке нет элементов, то должны быть созданы два пустых списка.

[1, 2, 3, 4, 5, 6] => [[1, 2, 3], [4, 5, 6]]

[1, 2, 3, 4, 5] => [[1, 2, 3], [4, 5]]

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Наполнить два списка: один со строками, второй с числами. После этого создать из них и вывести список кортежей
Нужно использовать zip() и input()

Разделить один список на два
Написать программу разделения списка на два так, чтобы в первом cписке были элементы с первого до.

Разделить список на два списка
//amziprolog dv(,,):-!. dv(, X, Y):- H < 0, A is H, dv(T, , Y). dv(, X, Y):- H >= 0, B is H.

Разделить исходный список строк на два списка
2) Создайте приложение, которое разделит исходный список строк на два списка: список строк.

Регистрация: 26.11.2021
Сообщений: 39
yevgen_84, из простых вариантов это срез

x = [1, 2, 3, 4, 5, 6] print([x[:3], x[3:]])

2429 / 1471 / 633
Регистрация: 01.11.2021
Сообщений: 2,269

1 2 3 4 5 6
def sep(arr): i = len(arr) - len(arr) // 2 return [arr[:i], arr[i:]] a = [1,2,3] print(sep(a))

Регистрация: 12.02.2022
Сообщений: 22
Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

17601 / 10349 / 2828
Регистрация: 21.10.2017
Сообщений: 22,422
yevgen_84, самый информативный камент в мире!
3575 / 2176 / 570
Регистрация: 02.09.2015
Сообщений: 5,494

1 2 3 4 5 6 7 8 9
def foo(a): mid = (len(a) + 1) // 2 return [a[:mid], a[mid:]] assert [[1, 2, 3], [4, 5, 6]] == foo([1, 2, 3, 4, 5, 6]) assert [[1, 2], [3]] == foo([1, 2, 3]) assert [[1, 2, 3], [4, 5]] == foo([1, 2, 3, 4, 5]) assert [[1], []] == foo([1]) assert [[], []] == foo([])

Регистрация: 12.02.2022
Сообщений: 22
def не проходили
3575 / 2176 / 570
Регистрация: 02.09.2015
Сообщений: 5,494

yevgen_84, будет повод.
Как по-твоему работает индексация в списках? Хочешь сказать, что без функций/методов?

2429 / 1471 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
yevgen_84,

1 2 3 4
arr = [[1, 2, 3, 4, 5, 6], [1, 2, 3], [1, 2, 3, 4, 5], [1], []] for a in arr: i = len(a) - len(a) // 2 print(a, '=>', [a[:i], a[i:]])

3662 / 1866 / 601
Регистрация: 21.11.2021
Сообщений: 3,654

1 2 3 4
a = [1,2,3,4,5] k = sum( tuple( divmod( len(a), 2 ) ) ) c = [ a[:k], a[k:] ] print( c )

Регистрация: 12.02.2022
Сообщений: 22

Здравствуйте помогите решить задачку
Ваша программа должна перенести последний элемент списка из конца в начало, т.е. последний элемент списка должен стать первым. При этом последовательность других элементов не должна меняться.

Пустой список или список только с одним элементом должен остаться прежними

[12, 3, 4, 10] => [10, 12, 3, 4]

3662 / 1866 / 601
Регистрация: 21.11.2021
Сообщений: 3,654

a = [1,2,3,4,5] print(f' => ')

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Есть два списка: один [a, b, c], другой [1, 2, 3]. Нужно вывести один список вида [a-1, b-2, c-3]
Помогите решить, пожалуйста. Есть два списка: один , другой . Нужно вывести один список вида

Разделить один однонаправленный список на два: положительные и отрицательные элементы
Дан однонаправленный список, состоящий из целых чисел. Получить из этого списка два новых. Один.

Разделить один двусвязный список на два: со строчными и прописными символами
Разбить двусвязный список, состоящий из N символов латинского алфавита, на 2 списка так, чтобы в.

SWI-Prolog. Разделить список на два списка по очереди
Разделить список на два списка, чтоб элементы записывались по очереди. Нужно написать прогу чтоб.

Как из один список разделить на 2 списка, чтобы элементы были в хаотичном порядке?
List<string> li = new List<string>().

Разделить линейный список со структурами Train на два списка одинаковой длины
Добрый день! Есть вот такое задание, структуру я создал, а придумать как разбить список не могу).

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *