2014-12-11 4 views
1
import random 

dictionary = {'dog': 1,'cat': 2,'animal': 3,'horse': 4} 
keys = random.shuffle(list(dictionary.keys())*3) 
values = list(dictionary.values())*3 
random_key = [] 
random_key_value = [] 

random_key.append(keys.pop()) 
random_key_value.append(???) 

Для random_key_values.append мне нужно добавить значение, соответствующее введенному ключу. Как я могу это достичь? Мне нужно использовать кратность списка, и я тоже не могу размножать словарь напрямую.Извлечение ключей из словаря

+0

На каком языке это? Пожалуйста, добавьте соответствующий тег, чтобы облегчить поиск вопроса. –

ответ

2

Я иду на python (вы должны указать язык в своем вопросе).

Если я понимаю, вы хотите размножить элементы в словаре. Так

list(dictionary.keys()) * 3 

не ваше решение: [1,2] * 3 результаты в [1,2,1,2,1,2]

Попробуйте вместо этого списка понимание:

[i * 3 for i in dictionary.keys()] 

принимать во внимание порядок (потому что вы перетасовать его) перетасовать ключи перед тем, умножения, затем создайте список значений (в том же порядке, что и перетасованные клавиши) и, наконец, умножьте ключи:

keys = dictionary.keys() 
random.shuffle(keys) 
values = [dictionary[i]*3 for i in keys] 
keys = [i * 3 for i in keys] 

И наконец:

random_key.append(keys.pop()) 
random_key_value.append(values.pop()) 

Также позаботьтесь о случайной функции, она не работает, как вы используете его. См. documentation.

+0

Простите, я не обращал внимания на то время - я думал, что у меня открыты панели python. Спасибо за объяснение, это именно то, что мне нужно :) –

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