我遇到过这个问题几次,似乎无法找出一个简单的解决方案。 说我有一个字符串将字符串转换为字典在Python中使用列表理解
string = "a=0 b=1 c=3"
我想将其转换成具有,b和c是所述键和0,1和3被它们各自的值的字典(转换为int)。很显然,我可以这样做:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
但我真的不喜欢那个for循环,它似乎很简单,你应该能够将其转换为某种形式的名单理解的表达。这适用于val
可以是字符串的稍微简单的情况。
dic = dict([entry.split('=') for entry in list])
但是,我需要将val快速转换为int,并且执行类似这样的操作在语法上是不正确的。
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
所以我的问题是:是否有消除使用列表理解循环的方法吗?如果没有,是否有一些内置的python方法可以为我做到这一点?
注:请不要使用内置函数作为变量名('string','list'等) – 2010-09-03 04:48:59