Converting Key-Value Pairs in a List to a Dictionary
To convert a list of key-value pairs, where each even element represents a key and the following odd element is the corresponding value, into a dictionary, the syntactically cleanest method is:
b = dict(zip(a[::2], a[1::2]))
Here, the zip() function pairs the keys and values and the dict() constructor creates the dictionary.
For performance optimization, when dealing with large lists, consider the following method, which avoids creating intermediate lists:
i = iter(a) b = dict(izip(i, i))
In Python 3, you can also use a dict comprehension:
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
If using iter() or zip() in Python 3, consider the lazy nature of zip() and use it as shown below:
i = iter(a) b = dict(zip(i, i))
Lastly, in Python 3.8 and later, the "walrus" operator can be employed for a compact one-line solution:
b = dict(zip(i := iter(a), i))
The above is the detailed content of How Can I Efficiently Convert a List of Key-Value Pairs into a Python Dictionary?. For more information, please follow other related articles on the PHP Chinese website!