列表理解中的调用函数

Emr*_*boz 4 python list-comprehension function python-3.x

这里我有一个函数

def celToFah(x):
    ftemps = []
    for i in x:
        ftemps.append((9/5 * i) + 32)
    return ftemps
Run Code Online (Sandbox Code Playgroud)

我在列表理解中称之为它。

ctemps = [17, 22, 18, 19]

ftemps = [celToFah(c) for c in ctemps]
Run Code Online (Sandbox Code Playgroud)

出现以下错误

“int”对象不可迭代

为什么我会收到错误消息?

Loo*_*cid 10

celToFah正在等待一个列表,而您正在给它一个int.

要么更改celToFah为仅在 s 上工作,int如下所示:

def celToFah(x):
    return 9/5 * x + 32

ctemps = [17, 22, 18, 19]
ftemps = [celToFah(c) for c in ctemps]
Run Code Online (Sandbox Code Playgroud)

或者ctemps直接传入celToFah

def celToFah(x):
    ftemps = []
    for i in x:
        ftemps.append((9/5 * i) + 32)
    return ftemps

ctemps = [17, 22, 18, 19]
ftemps = celToFah(ctemps)
Run Code Online (Sandbox Code Playgroud)