Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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 - Fatal编程技术网

Python 此函数中代码行的含义是什么?

Python 此函数中代码行的含义是什么?,python,Python,我的课程中的一个问题是创建一个函数,该函数返回一个列表的副本,并删除非真元素。查看解决方案后,我不理解解决方案中这行代码的含义: [val for val in lst if val] 我理解循环和if语句,但是这对我来说没有意义。我在我的课程中找不到关于这个或互联网的任何东西。如果有人能理解并解释,我将不胜感激。整个函数解决方案如下所示 def compact(lst): """Return a copy of lst with non-true

我的课程中的一个问题是创建一个函数,该函数返回一个列表的副本,并删除非真元素。查看解决方案后,我不理解解决方案中这行代码的含义:

   [val for val in lst if val]
我理解循环和if语句,但是这对我来说没有意义。我在我的课程中找不到关于这个或互联网的任何东西。如果有人能理解并解释,我将不胜感激。整个函数解决方案如下所示

def compact(lst):
    """Return a copy of lst with non-true elements removed.

        >>> compact([0, 1, 2, '', [], False, (), None, 'All done'])
        [1, 2, 'All done']
    """

    return [val for val in lst if val]
使用
列表理解
将结果分配给新列表,功能等同于:

new_list = []
for val in lst:
    if val:
        new_list.append(val)

因此,所有不是
True
的列表元素都会被过滤掉


你可以找到一个关于列表理解的很好的解释

你不理解的部分是什么?评论告诉你整体效果。列表的理解有很好的文档记录。“Truthy”评估的文档记录得非常好。如果你想了解它们,单词是
三元运算符
列表理解
。谷歌“列表理解”,这就是它的名称。请查看:@hippozhipos这不是三元表达式。谢谢你的帮助!以及参考链接。
new_list = []
for val in lst:
    if val:
        new_list.append(val)