2015-06-15 4 views
3

Я хочу вставить элемент в список внутри списка. Мне интересно, может ли кто-нибудь показать меня.Как вставить в список вложенных python

list5 = [[], [(1,2,3,4), 2, 5]] 
print("1. list5", list5) 
list5.insert(0, (2,5,6,8)) 
print("2. list5", list5) 

Output: 
1. list5 [[], [(1, 2, 3, 4), 2, 5]] 
2. list5 [(2, 5, 6, 8), [], [(1, 2, 3, 4), 2, 5]] 

Я хочу:

2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]] 

Словарь, к сожалению, не будет работать.

ответ

3

Проблема заключается в том, что вы пытаетесь вставить в качестве первого элемента списка list5, что является неправильным. Вы должны получить доступ к первому элементу списка и вставить его в этот список. Это можно сделать с помощью следующего кода

>>> list5 = [[], [(1,2,3,4), 2, 5]] 
>>> print("1. list5", list5) 
1. list5 [[], [(1, 2, 3, 4), 2, 5]] 
>>> list5[0].insert(0, (2,5,6,8)) 
>>> print("2. list5", list5) 
2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]] 
+0

Отлично. Огромное спасибо. – matt2605

+0

Рад помочь вам, дважды: P –

+0

Да, последний был с box = Box(). – matt2605

0

Вопрос здесь в том, что insert создает новый элемент в списке, что он применяется. Так

>>> list5 = [[], [(1,2,3,4), 2, 5]] 

создает список с двумя элементами, первый из которых, случается, список с нулевыми элементами:

>>> list5[0] 
## [] 

Если вы затем вызвать list5.insert(0, foo), что будет происходить в том, что foo получает толкнул в список в позиции 0, а все остальное будет сбито (т. е. элементы списка с индексом 0 или больше каждый увеличивают свой индекс на 1).

Что вы на самом деле хотите сделать, это вставить элемент в пустой список в позиции 0 list5. Поэтому вам нужно получить доступ к этому списку, а затем вызвать метод, который добавит ваш элемент. Либо

>>> list5[0].append((2,5,6,8)) 

или

>>> list5[0].insert(0, (2,5,6,8)) 

будет делать трюк.

Смежные вопросы