使用'< ='

时间:2018-05-01 09:49:17

标签: python-3.x list function dictionary

我正在尝试将一个函数应用于列表,以识别温度低于22度的所有实例。我想将此函数应用于SQLite数据库的一行。我试图使用map函数,但这会返回结果<map object at 0x100783240>而不是带有1的列表。

以下是我在连接到SQLite数据库之前练习的输入:

temperature = [13, 20, 36, 34, 23, 28, 34, 35, 20]

以下是代码的其余部分:

def non_wear_function(x):
    nonwear = []
    if temperature <= 22:
        nonwear.append(1)
        return nonwear

print(map(non_wear_function, temperature))

当我试图打印这样的非服装清单时:

Print(nonwear) 

它给出了错误

Name error: non wear function not defined

1 个答案:

答案 0 :(得分:1)

在此处询问之前,更广泛地阅读语言的基础知识可能是一个好主意:您可以使用maplist之类的任何迭代器转换为列表。这解决了您的初始问题。

出现第二个问题是因为您没有考虑范围(另请参阅this)。

如果你想做我理解的事情(即获得一个bool数组,指出temperature最多22个),non_wear_function将无法帮助你:它返回{{ 1}}或[1]。相反,您可能希望使用如下结构:

None

虽然在这种情况下,使用lambda函数或理解可能更适合:

def non_wear_function(t):
    return (t <= 22)

print(list(map(non_wear_function, temperature)))

修改

如果您愿意,还可以使用print([(t <= 22) for t in temperature]) print(list(map(lambda t: (t <= 22), temperature))) 功能将bool转换为int,例如:

int