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)