#python #tuples
Вопрос:
colours = [('green', 1.4), ('blue', 4.067), ('yellow', 6.56), ('black', 9.056), ('red', 10.23)]
Я произвел рандомизацию одного из этих значений с помощью следующего кода и получил индекс этого значения в списке:
colour_name = random.choice(colours)[0] colour_number = [i for i, t in enumerate(colours) if t[0] == colour_name][0] 1
Допустим, я произвел рандомизацию зеленого цвета с индексом 0. Как мне также получить значение 1.4, принадлежащее зеленому цвету?
Чтобы было ясно, я хочу, чтобы значение 1.4 хранилось в отдельной переменной, точно так же, как «зеленый» хранится в переменной «имя цвета».
Спасибо!
Комментарии:
1. Если я правильно вас понимаю, вы хотите вернуть «название цвета» и «номер цвета» из заданного индекса. Доступ к кортежам можно получить по индексу, как и к спискам. Следовательно, это будет:
colours[0][0]
—gt; «зеленый» и gt;colours[0][1]
—gt; «1.4».
Ответ №1:
random.choice
уже возвращает и имя, и значение; вы просто отбрасываете значение. Вам не нужно знать индекс выбора; вам просто нужно распаковать возвращенный кортеж.
colour_name, colour_value = random.choice(colours)