[英]Python 2.7: How to use avoid multiple iterations of a loop
我有以下列表,說我想以某種方式處理然后打印出元素:
mylist = [1,2,3,4,5,6]
def increment_list(l, amount):
return [x + amount for x in l]
def print_incremented_list(l):
for item in l:
print(item)
l = increment_list(mylist, 1)
print_incremented_list(l)
另一種寫這個的方式是
print_incremented_list(increment_list(mylist, 1))
我上面的問題是,函數調用相互嵌套,這增加了一點復雜性。 我發現將它們放在單獨的行中時更容易閱讀,但這可能是我的偏愛。
主要問題是兩種方法都必須兩次遍歷該列表,有沒有一種方法可以避免這種情況,而不必將所有功能嵌套在一個功能中,例如
def increment_list(l, amount):
incremented_list = []
for a in l:
incremented_list.append(a+amount)
print(a+amount)
return incremented_list
您可以避免使用生成器而不是列表來瀏覽列表兩次(請注意,圓括號而不是方括號):
def increment_list(l, amount):
return (x + amount for amount in l)
這樣一來,功能就完全分開了,但是只完成了一次遍歷列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.