У меня есть объект под названием result
. result.f
представляет собой словарь в виде (в качестве примера):Как удалить 0s из словаря в python
{('a','a'):9, ('a','b'):10, ('a','c'):0}
Я хочу, чтобы удалить элементы, которые равны 0 из словаря result.f
. Я написал следующий код:
new_f=set()
for j in result.f.keys():
if result.f[j]!=0:
new_f.append(j:result.f[j])
Но у меня есть ошибка синтаксиса:
new_f.append(j:result.f[j])
^
SyntaxError: invalid syntax
Как я могу написать новый словарь в new_f
таким образом, что new_f
равно result.f
после удаления элементов, которые равны 0?
UPDATE: Если в словаре: {('a','a'):9, ('a','b'):10, ('a','c'):0}
Я хочу выход быть такой же, как и предыдущий, но без 0 пункта: {('a','a'):9, ('a','b'):10}
Во-первых, обратите внимание, что new_f представляет собой набор, и множества не имеют какого-либо метода '' на добавление. Во-вторых, что означает «j: result.f [j], который должен означать? Что вы пытаетесь сделать с двоеточием? –
j - это ключ, а result.f [j] - значение. Поэтому я хочу создать новый словарь как: key: value. Например: '{('a', 'a'): 9}' потому что, если я не добавил 'j:', приведенный набор будет содержать значения без ключей. – user2192774
As почему ваша первоначальная попытка не сработала, 'new_f' был' set', а не 'dict', и чтобы добавить новые ключи, которые вы хотели бы использовать new_f [j] = result.f [j]'. '. append' - это только метод 'lists'. – SethMMorton