user5389245
user5389245

Reputation:

Access individual elements of tuples of dictionary keys

Considering the code snippet below -

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

gives me,

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

Now,

print(dct.keys())

gives me,

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

How can i access first element of the above list of keys? Something like -

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

and so on...

Upvotes: 1

Views: 116

Answers (2)

bappak
bappak

Reputation: 1044

You need to first convert the dct.keys() output to a list, and then the problem reduces to simple list-of-tuples indexing. To convert your .keys() output to a list, there are multiple available ways (check this out). Personally, I find using list comprehension as one of the simplest and most generic ways:

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

And now simply index this list of tuples as:

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

Hope that helps.

Upvotes: 0

WayToDoor
WayToDoor

Reputation: 1750

Remember that a dict is unordered, and that dict.keys() may change order.

That said, to access the first element of a list, as you said, you can use list[element_index]. If the elemnt is an iterable, do that again!

So it would be

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

Upvotes: 1

Related Questions