This will do it without having to traverse the list multiple times:
my_list = ['room', 10, 'chamber', 23, 'kitchen', 8]
pos = max(enumerate(my_list[1::2]), key=lambda x: x[1])[0]
print('The biggest room is ' + my_list[2*pos])
This uses enumerate to get the indexes of my_list
at the same time it is searching for the max.
Or you can be slightly clever with zip:
print('The biggest room is ' + max(zip(*[iter(my_list)]*2), key=lambda x: x[1])[0])
which relies upon using the same iterator over my_list
to feed successive values to zip
(borrowed from another excellent answer). This essentially turns your flat list into a list of tuples which would be a nicer way of storing the original data, if you have that option:
>>> list(zip(*[iter(my_list)]*2))
[('room', 10), ('chamber', 23), ('kitchen', 8)]