从字符串中解析int - > list的映射

Pet*_*ter 3 python

这应该是一个相当直接的python问题,但我正在坚持正确的语法.

假设我有一个字符串:

"1:a,b,c::2:e,f,g::3:h,i,j"
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这样的地图:

{'1': ['a', 'b', 'c'], '2': ['e', 'f', 'g'], '3': ['h', 'i', 'j']}
Run Code Online (Sandbox Code Playgroud)

怎么做?

我可以弄清楚如何使用嵌套for循环来做到这一点,但只是在一行中做到这一点很酷.

谢谢!

Mar*_*ers 8

这是一种方法:

dict((k, v.split(',')) for k,v in (x.split(':') for x in s.split('::')))
Run Code Online (Sandbox Code Playgroud)