如何计算列的唯一值并将每个值附加到字典?

时间:2020-07-04 00:16:29

标签: python list dictionary

本教程建议了该解决方案

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不在字典中。这种逻辑如何找到内容分级并将其附加到词典中?

1 个答案:

答案 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.上查看字典的基本操作