我试图养成创建列表推导式的习惯,基本上优化我写的任何代码。我做了个小练习,以查找给定数字中是否所有数字都是偶数为例,当尝试使用for循环和if语句创建列表时,我遇到了“continue”和“break”的问题。我能把这些流控制插入到列表中吗?
我想知道我能缩短任何代码的程度。这是我写的内容,我很想听听你们的反馈。
numbers = [str(x) for x in range(0, 10000)]
def is_all_even(nums):
temp_lst = []
evens_lst = []
for x in nums:
for y in x:
if int(y) % 2 == 0:
temp_lst.append(str(y))
continue
else:
break
if len(''.join(temp_lst[:])) == len(x):
evens_lst.append(''.join(temp_lst[:]))
del temp_lst[:]
print(evens_lst)
map
和filter
的有效实现。虽然许多循环可以重写成列表推导式,但它们并不真正意味着要取代for
循环。在map
或filter
的上下文中,break
或continue
的概念并不真正有意义,因此您不能在推导式中包含它们。 - aruisdantecProfile
运行并验证它确实存在问题。在那之前,你应该只写最清晰的代码。 - Kevin