Python—这个函数中的变量如何在字典中前进?
我很难理解下面代码的一部分。我在一个在线课程中得到了正确的答案,所以我不是在寻求帮助来完成它,只是理解了这一点:在最后一段代码中,我对x和食物如何工作感到困惑。x是如何在价格中通过项目的Python—这个函数中的变量如何在字典中前进?,python,concept,Python,Concept,我很难理解下面代码的一部分。我在一个在线课程中得到了正确的答案,所以我不是在寻求帮助来完成它,只是理解了这一点:在最后一段代码中,我对x和食物如何工作感到困惑。x是如何在价格中通过项目的 shopping_list = ["banana", "orange", "apple"] stock = { "banana": 6, "apple": 0, "orange": 32, "pear": 15 } prices = { "banana": 4, "apple": 2
shopping_list = ["banana", "orange", "apple"]
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
def compute_bill(food):
total = 0
for x in food:
total = total + prices[x]
return total
Python
字典(和其他Python数据结构)实现所谓的an,它一次按顺序获取一个项,直到它遍历整个数据结构
字典实现一个tp_iter插槽,该插槽返回一个有效的
迭代字典键的迭代器。在这种情况下
迭代时,不应修改字典,但该设置除外
允许现有密钥的值(不允许删除或添加)
不是,update()方法也不是)。这意味着我们可以写作
对于dict中的k:…
这相当于,但比
用于dict.keys()中的k:…
只要对词典的修改有限制(或
由循环或另一个线程执行)的操作,则不会违反
代码:for x in food:
只需在pythondict
中初始化迭代器
,并重复调用它以获取下一项,直到最后一项
这就是它在python(以及其他语言)中的工作方式。Python从内部知道,dict
实现了一个迭代器,而for
循环在下面调用这个迭代器。prices
是一个字典,是键(香蕉、苹果等)到值(4、2等)的映射
for x in food
表示“对于所提供列表中名为food
的每个项目,为其分配一个临时变量x
,并使用x
执行操作”
total=total+prices[x]
表示“将total
的当前值添加到物品x
的价格中(从价格中查找)”。对于食品
(本例中为香蕉)中的第一项,您将在价格
(即4)中查找相应的价格。因此,您实际上是说total=0+4
,然后转到食品中的下一项。由于total
现在设置为4,您的作业将变为total=4+price['orange']
,或4+1.5
。一旦列表被完全迭代,您就有了一个total
sum(在您的示例中为7.5)。您不了解哪一部分?for
循环在Python中是如何工作的,或者是如何访问字典
中的项目?哦,好的,谢谢!我很困惑,它怎么知道要把x从价目表中发送出去。