I want to create a dictionary out of a given list, in just one line. The keys of the dictionary will be indices, and values will be the elements of the list. Something like this:
a = [51,27,13,56] #given list d = one-line-statement #one line statement to create dictionary print(d)
Output:
{0:51, 1:27, 2:13, 3:56}
I don't have any specific requirements as to why I want one line. I'm just exploring python, and wondering if that is possible.
Using zip() with dict() function The simplest and most elegant way to build a dictionary from a list of keys and values is to use the zip() function with a dictionary constructor.
A dictionary or a list cannot be a key. Values, on the other hand, can literally be anything and they can be used more than once.
Python Update Dictionary in One Line Solution: Use the square bracket notation dict[key] = value to create a new mapping from key to value in the dictionary. There are two cases: The key already existed before and was associated to the old value_old .
To convert a list to a dictionary using the same values, you can use the dict. fromkeys() method. To convert two lists into one dictionary, you can use the Python zip() function. The dictionary comprehension lets you create a new dictionary based on the values of a list.
a = [51,27,13,56] b = dict(enumerate(a)) print(b)
will produce
{0: 51, 1: 27, 2: 13, 3: 56}
enumerate(sequence, start=0)
Return an enumerate object. sequence must be a sequence, an iterator, or some other object which supports iteration. The
next()
method of the iterator returned byenumerate()
returns atuple
containing a count (from start which defaults to 0) and the values obtained from iterating over sequence:
With another constructor, you have
a = [51,27,13,56] #given list d={i:x for i,x in enumerate(a)} print(d)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With