python - 这两个 python for 循环是一回事吗?

标签 python loops for-loop dictionary command

我正在观看一个视频教程,我对 dict() 命令中的 for 循环感到措手不及。我很难在 dict() 命令上搜索内容(一直在字典而不是命令上获取定义)所以我现在假设我可以将 for 循环添加到命令中。

在他们使用的视频中

dict((m[:3].lower(),m) for m in months)

所以我很好奇这是否与

for m in months:
    variable = dict((m[:3].lower(),m))

这是供引用的视频 https://youtu.be/a2sLiEgBl9k?t=1m17s

最佳答案

此表达式使用生成器表达式创建一个 dict

d = dict((m[:3].lower(),m) for m in months)

相当于

d = dict()
for m in months:
    d[m[:3].lower()] = m

你的第二个循环没有做同样的事情。您每个月都在迭代,然后创建一个包含单个条目的 dict 并将其分配给 variable。每次迭代都会覆盖此变量。

从代码来看,他们正在尝试制作这样一个字典:

{'jan': 'January',
 'feb': 'February',
 'mar': 'March',
 ...
}

关于python - 这两个 python for 循环是一回事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30355845/

相关文章:

javascript - 循环播放一个又一个声音

arrays - 在Perl 6中如何知道多值迭代期间的缺失值?

jquery - 循环中 chrome.tabs.create 的错误

python - pysqlite 段错误?

python - 如何在 Python 中将用户输入格式化为 f 字符串?

python - python 有没有好的规划 GUI 组件(widget)?

javascript - 我怎样才能迭代这个json?

带模数的 Python for 循环

python/django for循环和列表属性

python - 使用 Python 进行 MQTT 响应