Доступ к отдельным элементам кортежей словарных ключей - PullRequest
0 голосов
/ 09 декабря 2018

Учитывая приведенный ниже фрагмент кода -

list1 = [1,2,3,4]
list2 = [1,2,3,4]
list3 = ['a','b','c','d']
dct = dict(zip(zip(list1,list2),list3))
print(dct)

дает мне,

{(1, 1): 'a', (2, 2): 'b', (3, 3): 'c', (4, 4): 'd'}

Теперь

print(dct.keys())

дает мне,

dict_keys([(1, 1), (2, 2), (3, 3), (4, 4)])

Как я могу получить доступ к первому элементу из приведенного выше списка ключей?Что-то вроде -

dct.keys[0, 0] = 1
dct.keys[0, 1] = 1
dct.keys[1, 0] = 2
dct.keys[1, 2] = 2

и так далее ...

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Сначала необходимо преобразовать вывод dct.keys() в список, а затем проблема сводится к простой индексации списка кортежей.Чтобы преобразовать вывод .keys() в список, существует несколько доступных способов ( проверьте это ).Лично я считаю использование понимания списков одним из самых простых и общих способов:

>>> [key for key in dct.keys()]
[(1, 1), (2, 2), (3, 3), (4, 4)]

А теперь просто проиндексируйте этот список кортежей как:

>>> [key for key in dct.keys()][0][0]
1

Надеюсь, что это поможет.

0 голосов
/ 09 декабря 2018

Помните, что диктовка неупорядочена, и что dict.keys() может изменить порядок.

При этом для доступа к первому элементу списка, как вы сказали, вы можете использовать list[element_index].Если элемент является повторяемым, сделайте это снова!

Таким образом, это будет

dct_keys = list(yourdict.keys())
dct_keys[0][0] = 1
dct_keys[0][1] = 1
dct_keys[1][0] = 2
dct_keys[1][1] = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...