gpt4 book ai didi

Python - 返回 lst 中仅包含整数的列表列表?

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:14 25 4
gpt4 key购买 nike

def only_evens(lst):
"""
Return a list of the lists in lst that contain only even integers.

>>> only_evens([[1, 2, 4], [4, 0, 6], [22, 4, 3], [2]])
[[4, 0, 6], [2]]
"""
even_lists = []
condition = True

for sublist in lst:
for num in sublist:
if num % 2 != 0:
condition = condition and False
if condition == True:
even_lists.append(sublist)

return even_lists

我不明白为什么这会一直返回空字符串?直观上看,这有道理吗?非常感谢您的帮助。我已经在这个问题上坚持太久了。

编辑:非常感谢大家!我现在明白了:)。

最佳答案

您正在循环外初始化条件。应该为每个子列表重新初始化,并且 condition = condition and False 将始终评估为 False,应该是 condition = False

for sublist in lst:
condition = True
for num in sublist:
if num % 2 != 0:
condition = False
break

这可以通过 all 函数来完成,如下所示

return [sublist for sublist in lst if all(item % 2 == 0 for item in sublist)]

示例运行

def only_evens(lst):
return [sublist for sublist in lst if all(item % 2 == 0 for item in sublist)]

print only_evens([[1, 2, 4], [4, 0, 6], [22, 4, 3], [2]])
# [[4, 0, 6], [2]]

关于Python - 返回 lst 中仅包含整数的列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21871737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com