Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 把一张单子分成一张真实的单子和一张虚假的单子_Python_List_For Loop_If Statement - Fatal编程技术网

Python 把一张单子分成一张真实的单子和一张虚假的单子

Python 把一张单子分成一张真实的单子和一张虚假的单子,python,list,for-loop,if-statement,Python,List,For Loop,If Statement,我正在学习一门课程,它要求我“创建一个函数,该函数接受一个列表和一个回调函数,该函数返回一个真实值列表和另一个虚假值列表。” 我提交的答复是: def partition(lst): truthy_list = [] falsy_list = [] for i in lst: if i in lst == bool(lst): truthy_list.append(i) else: fals

我正在学习一门课程,它要求我“创建一个函数,该函数接受一个列表和一个回调函数,该函数返回一个真实值列表和另一个虚假值列表。”

我提交的答复是:

def partition(lst):

    truthy_list = []
    falsy_list = []
    for i in lst:
        if i in lst == bool(lst):
            truthy_list.append(i)
        else:
            falsy_list.append(i)
    return truthy_list
    return falsy_list
讲师给出的答案是:

def partition(lst, **fn**):

    trues = []
    falses = []
    for val in lst:
        if **fn(val)**:
            trues.append(val)
        else:
            falses.append(val)
    return [trues, falses]
除了函数中定义的“fn”和if语句中的第二部分之外,看起来一切都是一样的。我不知道函数中的第二部分是什么,也不知道if语句调用了什么。如果有人能将我置于他们的庇护之下,并向我解释我对此有何不理解,以及fn(val)在呼吁什么,我们将不胜感激。

工作示例

def partition(lst, callback):
    trues, falses = [], []
    for val in lst:
        if callback(val):
            trues.append(val)
        else:
            falses.append(val)

    return [trues, falses]


print(partition((
    'yes', 'no', 'true', 'false', 'wrong', 'malformed', 0, 'really?', 'True', 'ok'
), callback=lambda x: str(x).lower() in ['true', 'ok', 'yes']))
输出

[['yes', 'true', 'True', 'ok'], ['no', 'false', 'wrong', 'malformed', 0, 'really?']]
这是任务所讨论的回调函数。将函数传递给
分区
<代码>分区调用该函数并使用其返回值。