簡體   English   中英

如何優化此代碼以減少內存使用量?

[英]How to optimize this code to reduce memory usage?

我下面的代碼使用about(30000輸入元素)使用了超過300000 KB的內存,並且每個內存使用量都有限制(256 MB),那么有什么方法可以對其進行優化?

import itertools
def get_subsets(arr,m) :
    return list(itertools.combinations(arr,m))
def _9(string) :
    count =0
    for i in range(len(string)-1 , -1 ,-1) :
        if string[i] != '9' :
            break
        count += 1
    return count
if __name__ == "__main__" :
    length = int(input())
    arr = [int(x) for x in input().strip().split()]
    pairs = get_subsets(arr,2)
    max_9 = [_9(str(x[0]+x[1])) for x in pairs]
    max_9_0 = max(max_9)  
    print(max_9_0,max_9.count(max_9_0))

問題是:讓我們將價格的質量定義為價格的結尾處的九個數字(最右邊的數字等於9)。 例如,數字2999和123912391999都具有質量3,而數字952具有質量0。

有n個產品的價格分別為t1,t2,...,tn。

您將要購買兩種產品(它們必須不同)。 請找到兩個所選產品總價的最高質量。 另外,找到選擇兩種不同產品並獲得總價格的最大可能質量的方法。

一種方法可能是不使用列表。 使用發電機。 它們也是可迭代的。 參見: http : //letstalkdata.com/2015/05/how-to-use-python-generators-to-save-memory/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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