Skip to content
Advertisement

Сonvert list values to dictionary as key and value

Suppose there is a list: ['1604780184', '10', '1604780194', '0', '1604780319', '99', '1604780320', '0']

You need to get a result like: {'1604780184': '10', '1604780194': '0', '1604780319': '99', '1604780320': '0'}

Now I have so:

rline = ['1604780184', '10', '1604780194', '0', '1604780319', '99', '1604780320', '0']
total = {}
print(f"My list: {rline}")

while rline:
    total[rline[0:2][0]] = rline[0:2][1]
    del rline[0:2]

print(f"Dictionary: {total}")

Please advise a better way. Thanks.

Advertisement

Answer

Most concise (and probably the best) way might be:

result = dict(zip(lst[::2], lst[1::2]))

What it actually does is make use of some pattern your list follows and some builtin functions! Since every even index is a value-to-be and odd index a key-to-be, its easier to just slice and separate them. Then you can use zip() to form a collection of these separated values and then call dict() constructor to pull a dictionary out of it!

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement