[英]Is there a shorter way to initialize this loop?
是否有更短的方法來初始化此循環? 感覺就像輸入“val”四次這樣一個簡單的聲明可能不是最快的方法。
(該示例是用於解釋我的觀點的隨機代碼,實際的循環內容會復雜得多。)
values=[4,8,0,1,5,8,3]
for val in [val for val in values if val!=1]:
print(val)
我想到生成器表達式(不需要創建另一個迭代列表)和filter()
函數 (創建一個迭代器):
values = [4,8,0,1,5,8,3]
# generator expression instead of list expressen - is more efficient
for val in (val for val in values if val != 1):
print(val)
# filter the list - creates an iterator
for val in filter(lambda x:x != 1, values):
print (val)
輸出:
4
8
0
5
8
3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.