I feel that this is very simple and I'm close to solution, but I got stacked, and can't find suggestion in the Internet.
I have list that looks like:
my_list = ['name1@1111', 'name2@2222', 'name3@3333']
In general, each element of the list has the form: namex@some_number
.
I want to make dictionary in pretty way, that has key = namex
and value = some_number
. I can do it by:
md = {}
for item in arguments:
md[item.split('@')[0]] = item.split('@')[1]
But I would like to do it in one line, with list comprehension or something. I tried do following, and I think I'm not far from what I want.
md2 = dict( (k,v) for k,v in item.split('@') for item in arguments )
However, I'm getting error: ValueError: too many values to unpack
. No idea how to get out of this.
You actually don't need the extra step of creating the tuple
>>> my_list = ['name1@1111', 'name2@2222', 'name3@3333']
>>> dict(i.split('@') for i in my_list)
{'name3': '3333', 'name1': '1111', 'name2': '2222'}
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