Python中的列表理解为函数字符串求值输出无

Python中的列表理解为函数字符串求值输出无,python,python-3.x,string,jupyter-notebook,list-comprehension,Python,Python 3.x,String,Jupyter Notebook,List Comprehension,试图通过我定义的函数传递Python中的列表,但是当我运行代码时,我得到“None”作为输出 为了再现性,我将使用一个简单的示例,其中我希望所有单词都使用大写字符串 def upcase(x): print(x.upper()) upcase("word") 这当然会带来: WORD 但是现在,如果我尝试将我的函数应用于整个字符串,如下所示: randoms = ['chicken', 'window', 'carpet', 'lampshade', 'crosswalk'] r

试图通过我定义的函数传递Python中的列表,但是当我运行代码时,我得到“None”作为输出

为了再现性,我将使用一个简单的示例,其中我希望所有单词都使用大写字符串

def upcase(x):
    print(x.upper())

upcase("word")
这当然会带来:

WORD
但是现在,如果我尝试将我的函数应用于整个字符串,如下所示:

randoms = ['chicken', 'window', 'carpet', 'lampshade', 'crosswalk']

randoms_upcased = [upcase(x) for x in randoms]
print(randoms)
print(randoms_upcased)
我得到:

CHICKEN
WINDOW
CARPET
LAMPSHADE
CROSSWALK
['chicken', 'window', 'carpet', 'lampshade', 'crosswalk']
[None, None, None, None, None]
而我想要的输出是这样的

['chicken', 'window', 'carpet', 'lampshade', 'crosswalk']
['CHICKEN', 'WINDOW', 'CARPET', 'LAMPSHADE', 'CROSSWALK']

这可能吗?感谢您的帮助。

您的upcase函数会打印出结果,但不会返回任何内容。因为您没有指定返回值,所以它默认为不返回任何值。您需要添加一个显式返回:

def upcase(x):
    x = x.upper()
    print(x)
    return x

upcase函数输出结果,但不返回任何内容。因为您没有指定返回值,所以它默认为不返回任何值。您需要添加一个显式返回:

def upcase(x):
    x = x.upper()
    print(x)
    return x

我认为这是因为函数upcases只打印大写的字符串s,但它不返回任何内容。如果您从函数返回大写字符串,它应该可以工作。

我认为这是因为函数upcases被设置为只打印大写字符串,但它不返回任何内容。如果您从函数中返回大写字符串,它应该可以工作。

您需要返回正在打印的字符串

这应该起作用:

def upcase(x):
    return (x.upper())

您需要返回正在打印的字符串

这应该起作用:

def upcase(x):
    return (x.upper())

首先将结果存储在另一个列表z中,然后在函数中返回z:

def upcase(x):
    z = ([y.upper() for y in x])
    return z
l1 = ['chicken', 'window', 'carpet', 'lampshade', 'crosswalk']
upcase(l1)
输出:

['CHICKEN', 'WINDOW', 'CARPET', 'LAMPSHADE', 'CROSSWALK']

首先将结果存储在另一个列表z中,然后在函数中返回z:

def upcase(x):
    z = ([y.upper() for y in x])
    return z
l1 = ['chicken', 'window', 'carpet', 'lampshade', 'crosswalk']
upcase(l1)
输出:

['CHICKEN', 'WINDOW', 'CARPET', 'LAMPSHADE', 'CROSSWALK']

您的函数只是打印输出,而不是返回输出。没有return语句的python函数总是返回None您的函数返回None,这就是为什么列表理解生成一个包含所有None的列表您的函数只是打印输出,而不是返回它。没有return语句的python函数总是返回None函数返回None,这就是为什么列表理解生成一个包含all None的列表