2016-09-07 2 views
-2

Привет и большое вам спасибо за вашу помощь!В python добавьте значение словаря с каждым элементом в массиве

Я уверен, что это глупый вопрос, но я пытаюсь добавить значение словаря с элементами в массиве. Прямо сейчас я могу получить его, чтобы загрузить весь массив элементов как одну запись вместо отдельных значений. Извините, если я не объясню это хорошо. Вот пример:

Array = [4,5,6] 
dictionary {'index'} = [1,2,3] 

Вот что я делаю, и это неправильно

dictionary['index'].append(array) 

Это неправильно, потому что если я запрос, сколько элементов в словаре [ «индекс»] [1] возвращает 1 вместо 3. Посмотрите здесь:

print range(len(dictionary['index'][0])) 

Ответ 3, thats 1 2 и 3. однако!

print range(len(dictionary['index'][1])) 

Ответ 1, [4,5,6]. Я должен загружать массив неправильно. Кто-нибудь знает, что я делаю неправильно? Благодаря!

+1

Ваш пример является неправильным, 'словарь { 'индекс'} = [1,2,3]' кидает InvalidSyntax – iScrE4m

+2

Этот вопрос довольно неясно. Можете ли вы привести пример рабочего кода? Похоже, что вторая строка должна быть 'dictionary ['index'] = [[1, 2, 3]]' (обратите внимание на квадратные скобки вместо фигурных скобок перед '=' и дополнительной парой квадратных скобок после). После того, как это исправлено, ваш пример не показывает поведение, которое вы требуете (попробуйте!), Поэтому вы, видимо, делаете что-то еще. –

+0

Кроме того, первый и второй элементы вашего словаря ['index'] 'являются целыми числами, поэтому вы не можете получить их длину. Возможно, вы хотели написать 'len (range (dictionary ['index'] [0]))'. – cphyc

ответ

3

Если вы хотите добавить весь список в существующий список, вы можете просто использовать extend():

a = [4,5,6] 
d = {'index': [1,2,3]} 
d['index'].extend(a) 

выход:

{'index': [1, 2, 3, 4, 5, 6]} 

Если вы хотите, чтобы в конечном итоге со списком, содержащим два списков, [1,2,3] и [4,5,6], то вам следует подумать о том, как первоначально создается значение словаря. Вы можете сделать:

d['index'] = [1,2,3] 
d['index'] = [d['index']] 
d['index'].append([4,5,6]) 

выход:

{'index': [[1, 2, 3], [4, 5, 6]]} 
+0

Я думаю, что OP на самом деле хочет в конечном итоге «{'index': [[1, 2, 3], [4, 5, 6]]}'. Посмотрите пример печатных выражений в вопросе. –

+0

Спасибо за разъяснение. Я сделал для этого изменение. – denvaar

+0

Бинго! спасибо вам, так так! –

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