本教程建议了该解决方案
opened_file = open('AppleStore.csv')
from csv import reader
read_file = reader(opened_file)
apps_data = list(read_file)
content_ratings = {}
for row in apps_data[1:]:
c_rating = row[10] #the content rating that says which app is suitable for which age
if c_rating in content_ratings:
content_ratings[c_rating] += 1
else:
content_ratings[c_rating] = 1
print(content_ratings)
输出为
{'17+': 622, '4+': 4433, '9+': 987, '12+': 1155}
我只想了解代码逻辑。该行说if c_rating in content_ratings:
应该返回False
,因为它不符合条件,因为content_rating
本身为空,因此c_rating
不在字典中。这种逻辑如何找到内容分级并将其附加到词典中?
答案 0 :(得分:2)
if-else语句中的两行看起来相同,但有一点不同,+
符号:
if c_rating in content_ratings:
content_ratings[c_rating] += 1
else:
content_ratings[c_rating] = 1
content_ratings[c_rating] = 1
,这是将元素添加到python词典中的方式。您也可以用相同的方式更新现有的元素字典。在content_ratings[c_rating] += 1
处,您将获得现有元素并增加其值。
因此,您是对的,当if c_rating in content_ratings:
返回false
时,它会添加元素,否则,它会更新其值(计数增加)。
您可以在docs.上查看字典的基本操作