有没有办法在 for 循环中解压 split() 的结果?
我知道问题的标题可能不是最直观的,但我想不出更好的方法来简短地描述它,这就是我的实际意思。
我想写一些小的解析器,它会用我指定的字符串构建一个 kwargs 字典。
下面是一个例子:
string_of_kwargs = 'n=6,m=10'
graph_kwargs = {pair.split('=')[0]:pair.split('=')[1]
for pair in string_of_kwargs.split(',')}
输出是:
{'n': '6', 'm': '10'}
问题是在上面的代码中,我不得不使用 pair.split('=') 两次,我想知道是否有办法解决它,以防我将来不得不解压更多这样的值。
回答
当然:
>>> dict(pair.split('=', 1) for pair in string_of_kwargs.split(','))
{'n': '6', 'm': '10'}
为什么1作为 的第二个参数split()?以防万一有多个'='标志。尽管如此,还有更多的工作要做,以使其防弹,但这超出了问题的范围。