Я хочу получить ключи и их значения из словаря, удовлетворяющего условиям, а затем сохранить их в другом словаре. То, о чем я думал до сих пор, было:
dict = {'a': 1, 'b': 2}
new_dict = {}
for x in dict:
new_dict.update(x=dict[x])
print (dict)
print (new_dict)
Здесь x
хранит ключ 'a'
со значением 1
, но когда я обновляю new_dict
, он сохраняет x: 2
, что означает, что во время первого цикла он создал новый ключ x
и повторно инициализировал ключ во время второго цикла. Это означает, что Python интерпретирует x
как литерал.
Есть ли вообще new_dict
магазин 'a': 1
и 'b': 2
?
Для начала, весь смысл update
заключается в том, чтобы делать: new_dict.update(old_dict)
. Чтобы назначить один предмет, используйте new_dict[some_key] = some_value
, если вы В самом деле должны использовать update
(вы этого не делаете), то вы можете сделать перегруженный new_dict.update({some_key:some_value})
или даже более перегруженный new_dict.update([(some_key, some_value)])
Это сработало для меня:
$ python
Python 3.7.2 (default, Dec 27 2018, 07:35:06)
>>> d1 = {'a':1,'b':2}
>>> d2 = {}
>>> for k,v in d1.items():
... if True:
... d2[k] = v
...
>>> d2
{'a': 1, 'b': 2}
Вы бы просто заменили if True
своим состоянием.
Дополнительную информацию о переборе словарей смотрите здесь: https://docs.python.org/3/tutorial/datastructures.html#looping-techniques
Работает как шарм!
это дубликат. Я хочу скопировать, например, только
a
над. Я надеюсь выполнить итерациюdict
, и ключи, соответствующие условию, затем будут сохранены вnew_dict
.