簡體   English   中英

Python 2.7:如何使用避免循環的多次迭代

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM