【发布时间】:2019-01-23 18:05:14
【问题描述】:
我刚开始学习python,发现了这个sn-p。它应该计算一个单词出现的次数。我想,对你们所有人来说,这似乎很合乎逻辑,但不幸的是,对我来说,这没有任何意义。
str = "house is where you live, you don't leave the house."
dict = {}
list = str.split(" ")
for word in list: # Loop over the list
if word in dict: # How can I loop over the dictionary if it's empty?
dict[word] = dict[word] + 1
else:
dict[word] = 1
所以,我的问题是,我怎样才能遍历字典?字典不应该是空的,因为我没有在里面传递任何东西吗? 也许我不够聪明,但我看不到逻辑。谁能解释一下它是如何工作的? 非常感谢
【问题讨论】:
-
循环运行时,字典被“填充”。它只是第一次通过时是空的。此外,永远不要使用关键字作为变量名。 str、dict 和 list 在这里被覆盖。
-
您使用
if word in dict:添加了关于循环的评论。if语句不是循环。 -
(不管怎样,循环一个空集合是完全没问题的,就像将数字乘以 0 完全没问题一样。)
-
@ParitoshSingh -
str、dict和list不是关键字;它们只是内置函数。如果它们是关键字,则在尝试分配给它们时会出错。这就是为什么在考虑名称时需要谨慎:它不会自动为您捕捉到。 -
谢谢大家的意见。我从你那里学到了更多,我自己专注于这段代码一个多小时。
标签: python python-3.x dictionary for-loop