首页 > 解决方案 > 使用说明符和字典推导更新字典时的字符串格式

问题描述

我想问一个关于使用字符串格式更新 python 字典的问题。

我正在关注来自真正 python 的matplotlib教程,并且有一些代码让我感到困惑。

sides = ('left', 'right', 'top', 'bottom')
nolabels = {s: False for s in sides}
nolabels.update({'label%s' % s: False for s in sides})
print(nolabels)

前两行是有道理的——这只是列出 的键sides和 的初始字典nolabels

但是,我试图这样理解以下行:

nolabels.update({'label%s' % s: False for s in sides})

我们正在nolabels使用字典理解更新字典,并且我们添加了新键,这些键由旧键组成,但前面带有单词labeleglabelleftlabelright

我正在努力理解的是格式化是如何发生的。我的猜测是字典理解的每次迭代都会运行,例如

  1. 获得第一个项目sides -> left
  2. 在字典中创建一个新的键值对,但是使键label+ left=labelleft
  3. sides为字典中的所有项目存储键、值对并重复。

我在程序流程方面是正确的,还是我完全搞砸了?

标签: pythondictionarymatplotlibformattingdictionary-comprehension

解决方案


推荐阅读