我遇到过这个问题几次,似乎无法找到一个简单的解决方案。说我有一个字符串
string = "a=0 b=1 c=3"
我想将其转换为字典,其中 a、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])
所以我的问题是:有没有办法使用列表理解来消除 for 循环?如果没有,是否有一些内置的 python 方法可以为我做到这一点?