2015-02-22 2 views
-4

Я пытаюсь выбрать переменную случайного словаря из списка. Я начинаю, выбирая случайную переменную из списка emotelist.Выбор случайной переменной в списке

import random 
emotelist = [bored] 
emotechosen = random.choice(emotelist) 
emotename = emotechosen['emote'] 
emoteframe = emotechosen['frame'] 
bored = {'emote':'bored', 'frame':135} 
print emotename 
print emoteframe 

Но я получаю ошибку

NameError: name 'bored' is not defined

Спасибо за помощь. Я должен был определить мои переменные в списке перед созданием списка переменных.

+0

В строке 2 вам доступно скучно, но вы никогда не определяли скуку до – Vader

+1

И что вы * ожидали * от этого кода? Ваш код пытается использовать имя 'bored', прежде чем он будет связан с гораздо более поздней строкой. –

+0

Всегда читайте ошибку. Они предназначены для людей. – keyser

ответ

4

Вы должны определить boredперед создания списка, который держит его:

import random 
# move bored definition here: 
bored = {'emote':'bored', 'frame':135} 
# now use it in a list construction 
emotelist = [bored] 
emotechosen = random.choice(emotelist) 
emotename = emotechosen['emote'] 
emoteframe = emotechosen['frame'] 
print emotename 
print emoteframe 
0

Вам нужно определить скучающий перед использованием:

import random 
bored = {'emote':'bored', 'frame':135} 
emotelist = [bored] 
emotechosen = random.choice(emotelist) 
emotename = emotechosen['emote'] 
emoteframe = emotechosen['frame'] 
+0

Но OP позже определяет переменную 'bored'. Остальная часть кода тоже беспорядок. –

+1

При этом он выбирает строку со скукой, поэтому emotename и emoteframe не могут получить значения словаря, потому что строки не являются словарями – Judge2020

0

Похоже, что вы пытаетесь для печати значения случайного словаря:

from random import choice 

bored = {'emote':'bored', 'frame':135} 
print bored[choice(bored.keys())] 
Смежные вопросы