我试着让它成为创建列表理解的习惯,并基本上优化我编写的任何代码。 我做了一个小练习,以确定给定数字中的所有数字是否均为偶数,在尝试创建包含for循环的列表时,如果语句遇到“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)
不必向函数发送整个数字列表,只需向函数发送一个数字,然后使用列表理解将其应用于列表。
您可以使用list comp,使用all查找包含所有偶数的数字:
all
查找任何奇数都会短路。如果不想一次将所有数字存储在内存中,可以使用generator expression:
要访问数字,您只需在晚上重复:
还可以对函数方法使用filter,该方法在python 3中返回迭代器:
相关问题 更多 >
编程相关推荐