Получение только одного элемента из функции отображения - PullRequest
0 голосов
/ 15 мая 2018

В настоящее время я изучаю функции отображения и имею следующее:

t = ['a','b','c']

def capitalize_all(t): 
    res = []
    for s in t:
        res.append(s.capitalize())
    return res

 capitalize_all(res)
 [A]

Вы также можете использовать:

capitalize_all('b')
[B]
capitalize_all('c')
[C]

и т. Д. Но у меня вопрос: почему эта функция возвращает только один элемент в списке? Не будет ли в итоге три элемента?

Ответы [ 3 ]

0 голосов
/ 15 мая 2018

обратите внимание на ответное предложение

def capitalize_all(t): 
    res = []
    for s in t:
        res.append(s.capitalize())
    #you should return res after for loop ends
    return res
0 голосов
/ 15 мая 2018

Вы можете сделать это:

def capitalize_letters(letters):
    return [letter.upper() for letter in letters]
0 голосов
/ 15 мая 2018

Потому что вы возвращаетесь из функции не в том месте.В данный момент вы делаете первый элемент в верхнем регистре списка, добавляете его в новый список и возвращаете.Следовательно, результат заканчивается только одним элементом.Измените место возврата, как показано ниже, и вы получите желаемый результат.

t = ['a','b','c']

def capitalize_all(t): 
    res = []
    for s in t:
      res.append(s.capitalize())
    return res

print(capitalize_all(t))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...