Понимание словаря - PullRequest
       2

Понимание словаря

0 голосов
/ 20 сентября 2018
# Initialize an empty dictionary: counts_dict
counts_dict = {}

# Iterate over the file chunk by chunk
for chunk in pd.read_csv('tweets.csv', chunksize=10):

    # Iterate over the column in DataFrame
    for entry in chunk['lang']:
        if entry in counts_dict.keys():
            counts_dict[entry] += 1
        else:
            counts_dict[entry] = 1

# Print the populated dictionary
print(counts_dict)

Может кто-нибудь объяснить, даже если словарь counts_dict = {} является пустым словарем, как сопоставляется условие if-else, если counts_dict является пустым словарем в нижней части кода: -

for entry in chunk['lang']:
    if entry in counts_dict.keys():
        counts_dict[entry] += 1
    else:
        counts_dict[entry] = 1

1 Ответ

0 голосов
/ 20 сентября 2018

При первом выполнении if словарь будет пустым, поэтому entry in count_dicts.keys() будет False.В результате он выполнит блок else:, который присваивается count_dict[entry].Таким образом, словарь больше не является пустым.

На следующей итерации, если entry - это тот же ключ, который он только что добавил, условие if будет равно True, и оно будет увеличивать этот элемент словаря.Если это другой ключ, он создаст для этого новый элемент словаря.

Это повторяется для каждой записи в chunk['lang'] - при первом обнаружении записи для него создается новый элемент словаря., в то время как повторяющиеся записи добавляют 1 к соответствующему элементу.В конце каждый элемент словаря содержит счетчик его ключа.

Это можно увидеть, если поставить:

print(count_dict)

в цикле for после if/elseблок. * * тысяча двадцать-одна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...