я пытаюсь добавить в словарь. есть две петли. имя ключей зависит от значения внутреннего цикла, а ключ — это значение переменной, которая обновляется в цикле. мой сценарий
def append_value(dict_obj, key, value):
# Check if key exist in dict or not
if key in dict_obj:
# Key exist in dict.
# Check if type of value of key is list or not
if not isinstance(dict_obj[key], list):
# If type is not list then make it list
dict_obj[key] = [dict_obj[key]]
# Append the value in list
dict_obj[key].append(value)
else:
# As key is not in dict,
# so, add key-value pair
dict_obj[key] = value
for x in range(tot):
dict=['output'=x]
for a in range(33,91):
index_val=(a*sum_t)/x
# now i'm trying to create key names that would be year_33 year_34 and so on
head=''
head='year_{}'.format(a)
append_value(dict, head=avg_PMI)
я получаю, что имя ошибки «append_value» не определено. был бы признателен за любую помощь. я хотел бы перебрать значения tot и диапазона (33,91). каждая комбинация двух дает уникальные значения, и я хочу создать словарь, который станет CSV, где значения x - это строки, а - столбец.
Спасибо!
отредактировано: показать функцию append_value
Что вы подразумеваете под «добавить в словарь»? Почему вы ожидаете, что append_value
будет определено? Пожалуйста, внесите больше ясности в свой вопрос.
Не называйте свой словарь dict
— это затеняет тип и может вызвать проблемы в других частях вашей программы (а также сбить с толку). Предполагая, что вы называете свой словарь как-то вроде my_data
, что не так с my_data['output'] = x
и my_data[head] = avg_PMI
— пожалуйста, прочитайте основы использования словаря в Python docs.python.org/3/tutorial/datastructures.html#dictionaries
Спасибо за ваши Коментарии. я обновил код, чтобы показать определение функции append_value. там была ошибка, которую я исправил, но теперь я получаю сообщение об ошибке «append_value () получило неожиданный аргумент ключевого слова «голова»»
Причина ошибки в том, что когда вы вызываете функцию с head=avg_PMI
, python предполагает, что head
является аргументом. Для append_value
единственными аргументами являются dict_obj
, key
и value
. Я предполагаю, что вы хотите добавить в словарь такое значение, что head=avg_PMI. Для этого вам нужно вызвать функцию append_value
следующим образом:
append_value(dict, head, avg_PMI)
.
Что вы ожидаете от
append_value
? Вы это где-то определяли? Кроме того, это похоже на синтаксическую ошибку:dict=['output'=x]
что это должно делать?