Как добавить значения во вложенный список в Python - PullRequest
0 голосов
/ 04 февраля 2019

у меня есть список

list= [['1', '2', '4'], ['1', '48', '2'], ['53', '33', '25', '2', '26', '47']]

, который в newlist: (от первого значения к значению: '2') в каждом списке

newlist= [['1', '2'], ['1', '48'],['48', '2'], ['53', '33']['33', '25']['25', '2']]

, но ниже кода выполняется для всех значений

[m[i:i+2] for i in range(0, len(list), 1)]

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вы можете выполнить сопряжение смежных элементов каждого подсписка, сжав себя со смещением 1, а затем использовать itertools.takewhile для вывода пар до тех пор, пока первый элемент не будет равен '2':

from itertools import takewhile
l = [['1', '2', '4'], ['1', '48', '2'], ['53', '33', '25', '2', '26', '47']]
[list(t) for s in l for t in takewhile(lambda t: t[0] != '2', zip(s, s[1:]))]

Возвращает:

[['1', '2'], ['1', '48'], ['48', '2'], ['53', '33'], ['33', '25'], ['25', '2']]
0 голосов
/ 04 февраля 2019

Вы можете попробовать использовать два цикла for, один для итерации по элементам в списке и цикл for для итерации по index из '2' во внутреннем списке.

Примечание : Рекомендуется не использовать list в качестве имени переменной.

my_list= [['1', '2', '4'], ['1', '48', '2'], ['53', '33', '25', '2', '26', '47']]
new_list = [[i[j],i[j+1]] for i in my_list for j in range(i.index('2'))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...