Python 创建新词典/列表时,很难理解if和in的用法

Python 创建新词典/列表时,很难理解if和in的用法,python,python-3.x,if-statement,Python,Python 3.x,If Statement,我不明白下面的代码是如何工作的。如果某个内容是空字典,那么它怎么可能“在”reviews\u max中 reviews_max = {} for app in android: name = app[0] n_reviews = float(app[3]) if name in reviews_max and reviews_max[name] < n_reviews: reviews_max[name] = n_reviews eli

我不明白下面的代码是如何工作的。如果某个内容是空字典,那么它怎么可能“在”
reviews\u max

reviews_max = {}

for app in android:
    name = app[0]
    n_reviews = float(app[3])

    if name in reviews_max and reviews_max[name] < n_reviews:
        reviews_max[name] = n_reviews

    elif name not in reviews_max:
        reviews_max[name] = n_reviews
reviews_max={}
对于android中的应用程序:
名称=应用程序[0]
n_reviews=浮动(应用[3])
如果在reviews\u max和reviews\u max[name]
在第一次迭代后,它不会为空,因为此行正在运行:

reviews_max[name] = n_reviews

在第一次迭代中,
reviews\u max
将为空,这是正确的。但是如果
android
包含多个元素,
reviews\u max
将不会为空,因为
app[0]
将在第一次迭代时作为
app[3]
的键添加到其中

此代码:

reviews_max[name] = n_reviews 

在第一次迭代时,将定义为
app[0]
name
分配给
n\u reviews
,定义为
float(app[3])
reviews\u max
字典中,因为
name
不在
reviews\u max

中逐块查看:

# define an empty dictionary called `reviews_max`
reviews_max = {}

# for each entry in the list `android`, store the name and number of reviews
for app in android:
    name = app[0]
    n_reviews = float(app[3])

    # if there's already an entry in `reviews_max` for that app,
    # and the value of that entry is smaller than the number of reviews for the app,
    # update the entry
    if name in reviews_max and reviews_max[name] < n_reviews:
            reviews_max[name] = n_reviews

    # otherwise, add the entry to reviews_max
    elif name not in reviews_max:
            reviews_max[name] = n_reviews
#定义一个名为“reviews”的空字典`
评论_max={}
#对于“android”列表中的每个条目,存储评论的名称和数量
对于android中的应用程序:
名称=应用程序[0]
n_reviews=浮动(应用[3])
#如果“reviews_max”中已经有该应用程序的条目,
#该条目的值小于应用程序的评论数,
#更新条目
如果在reviews\u max和reviews\u max[name]
在第一次迭代之后,它不再是空的。对于这样的代码,要理解的关键是询问在第一次迭代之后迭代继续进行时会发生什么。