2015-05-13 2 views
1

Если у меня есть словарь, как я могу взять ключи и разрешить пользователю создавать неограниченные версии с разными значениями для каждой клавиши?Сделать неограниченные версии dict, одинаковые ключи, разные значения

+3

Это, безусловно, проблема [XY] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem), если я когда-либо видел один – CoryKramer

+0

извините, все, надеюсь, у меня есть поставил мой вопрос лучше :) –

+0

Я поставил 'dict.copy' было бы полезно здесь. – Kevin

ответ

0
my_keys = ["Hello", "World"] 
my_values1 = ["Why", "that"] 

my_dict1 = dict(zip(my_keys, my_values1)) 

my_dict2 = dict.fromkeys(my_dict1.keys()) 

Вариант 1 позволяет простую конструкцию любого Dict от обоих:. Список ключей и значений, в то время как my_dict2 представляет varaint создать «пустой» (все значения None ДИКТ от существующего Вы можете также смешать оба (я оставляю это упражнение ;-)

0

Вы можете использовать dict.fromkeys() метод:.

def copy_keys(your_dict=None): 
    if your_dict != None: 
     return dict.fromkeys(your_dict.keys()) 
    else: 
     return dict() 

 

blah = dict((('blah',1),('haha',2))) 
>>>blah 
{'blah': 1, 'haha': 2} 

 

>>> copy_keys(blah) 
{'blah': None, 'haha': None} 

Мой пример функции initalizes значения, как None но вы можете легко адаптировать его вставить свои собственные значения, передавая параметр value методу .fromkeys(seq[,value]).

+0

Зачем вам использовать промежуточный промежуток? ключи уже возвращают объект вида. – Olaf

+0

Хорошая точка. Случайно оставил это там от отладки. –

Смежные вопросы