Есть ли способ добавить один набор в массив, используя l oop в Python? - PullRequest
0 голосов
/ 28 марта 2020

Я просто хочу сделать элементы одним индексом.

Здесь я буду хранить данные:

array = []

Это мой код:

for x in range(2):
  array.append({data[x]})

Результат этого кода array = [{data1},{data2}]. Я просто хочу сделать это как array = [{data1, data2}].

Ответы [ 3 ]

1 голос
/ 28 марта 2020

Ваш вопрос неясен, но я постараюсь угадать, что вы ищете.

Если вы используете список в качестве ключа в словаре, вы получите исключение:

array = ['a', 'b']
dct = {array: 'val'}

yields

Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unhashable type: 'list'

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

Поэтому, чтобы обойти это, вы можете преобразовать список в кортеж, который является неизменным:

dct = {tuple(array): 'val'}
print(dct)

приводит к

{('a', 'b'): 'val'}
0 голосов
/ 28 марта 2020
var1 = {'a':'12ab...' , 'b': 235 }
var2 = {'d1' : "28-03-2020" }
arr = [var1   , var2 ]

print(arr[0]) >>> {'a':'12ab...' , 'b': 235 }

print(arr[1])  >>> {'d1' : "28-03-2020" }

print (arr[0]['a'])  >>> 12ab...

вас это устраивает?

0 голосов
/ 28 марта 2020

Да, tuple s может быть индексом, используемым в dict, поскольку он может быть хэшируемым, тогда как некоторые другие типы не могут:

array = ['a', 'b']
tup = tuple(array)

#This works:
d = { tup:'A Value'}

#This does not work:
d = {array:'A Value'}
...