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:
是False
,else
分支运行:
titles[title] = 1
这会将标题添加到词典中。
以下代码摘自 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:
是False
,else
分支运行:
titles[title] = 1
这会将标题添加到词典中。