Python CS50课程内容中的字典初始化

Python dictionary initialization in CS50 course content

以下代码摘自 CS50 第 7 周。它打开一个文件 (favorites.csv),从文件中读取常见电视节目的标题,并将标题和标题计数添加到字典中。但是,我不明白为什么会这样。开始时,标题字典被初始化。如果标题在 titles 字典中,则稍后将计数添加到字典中。但是,我不明白为什么 titles 字典包含任何标题? favorites.csv 文件中的标题在哪里添加到词典中?我本以为“if title in titles”条件总是错误的,因为此时字典似乎是空的?问这个问题有点尴尬,但经过相当长的时间研究这个问题后,我显然不理解这一点。感谢您提供的任何解释。

# Prints popularity of titles in CSV, sorted by title

import csv

# For accumulating (and later sorting) titles
titles = {}

# Open CSV file
with open("favorites.csv", "r") as file:

    # Create DictReader
    reader = csv.DictReader(file)

    # Iterate over CSV file, adding each (uppercased) title to dictionary
    for row in reader:

        # Canoncalize title
        title = row["title"].strip().upper()

        # Count title
        if title in titles:
            titles[title] += 1
        else:
            titles[title] = 1

# Print titles in sorted order
for title in sorted(titles):
    print(title, titles[title])

什么时候

if title in titles:

Falseelse分支运行:

titles[title] = 1

这会将标题添加到词典中。