сохранение значения кортежа в случайной переменной

#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)