2015-05-02 3 views
0

Хорошо, так что у меня есть кортеж, как этотКак вернуть значение из кортежа

values = ('1', 'cat', '2', 'bat', '3', 'rat', '4', 'hat', '5', 'sat') 

Какой функция цикл бы я должен написать, чтобы попросить пользовательский ввод для целого и его возвращением слова , то есть. пользовательские входы 1, и он возвращает cat. или пользовательские входы 123, и он возвращает catbatrat (я не хочу, чтобы на выходе были пробелы)

Редактирование: Я знаю, что было бы разумнее использовать словарь, но в этом случае мне бы не хотелось.

мой код:

values = ('1', 'cat', '2', 'bat', '3', 'rat', '4', 'hat', '5', 'sat') 
    message = raw_input("Enter a number for the corresponding word: ") 
    for char in message: 
     print values 
+1

1) Пожалуйста, покажите нам свою попытку решения. 2) Добавьте тег языка. –

ответ

0

Как вы говорите, это гораздо лучше делать с помощью словаря. Но так как вы настаиваете, вы можете посмотреть индекс для числа в кортеже, а затем распечатать элемент в следующем индексе:

for char in message: 
    print values[values.index(char)+1], 

С вводом '123', напечатает:

cat bat rat 

Примечание что это не удастся, если какой-либо из введенных символов отсутствует, поскольку метод index вызовет исключение.

Мне интересно, хотите ли вы просто узнать, как получить доступ к отдельным элементам кортежа; вы можете индексировать их так же, как и список. Например, учитывая:

values = ('cat', 'rat', 'bat', 'hat') 

Вы могли бы просто сказать values[0] получить 'cat', например.

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