Pav*_*vel 15 python string dictionary list-comprehension generator-expression
我几次遇到这个问题,似乎无法找到一个简单的解决方案.说我有一个字符串
string = "a=0 b=1 c=3"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为字典,其中a,b和c是键,0,1和3是它们各自的值(转换为int).显然我可以这样做:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢循环,看起来很简单,你应该能够将它转换为某种列表理解表达式.这适用于稍微简单的情况,其中val
可以是一个字符串.
dic = dict([entry.split('=') for entry in list])
Run Code Online (Sandbox Code Playgroud)
但是,我需要动态地将val转换为int,并且做这样的事情在语法上是不正确的.
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:有没有办法消除使用列表理解的for循环?如果没有,是否有一些内置的python方法可以为我做到这一点?
S.L*_*ott 29
你是说这个吗?
>>> dict( (n,int(v)) for n,v in (a.split('=') for a in string.split() ) )
{'a': 0, 'c': 3, 'b': 1}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18697 次 |
最近记录: |