gpt4 book ai didi

python - .clear() 对于列表不起作用 - python

转载 作者:行者123 更新时间:2023-11-28 19:47:44 24 4
gpt4 key购买 nike

我正在编写一些代码,用于查找数字的质因数分解。 main函数通过数字递增;我这样做是因为我想使用代码进行计时实验。我不介意它不是 super 高效,对我来说,项目的一部分将是让我自己更有效率。它也还没有完全完成(例如,它没有简化质因数分解)。我已经测试了除 main 函数之外的所有函数并且它们都有效,所以这些都没有问题。

我的代码是

import math 
import time

primfac=[]

def primes(n):
sieve = [True] * n
for i in xrange(3,int(n**0.5)+1,2):
if sieve[i]:
sieve[i*i::2*i]=[False]*((n-i*i-1)/(2*i)+1)
return [2] + [i for i in xrange(3,n,2) if sieve[i]]


def factfind(lsp,n): #finds factors of n among primes
for i in lsp:
if n%i==0:
primfac.append(i)
else:
i+=1

def primfacfind(n1,n2):
while n1 < n2:
n = n1

time_start = time.clock()

factfind(primes(n),n)
print primfac

time_elapsed = time.clock() - time_start
print "time:", time_elapsed

primfac.clear()

n1+=1

print primfacfind(6,15)

然后运行它给出输出

[2, 3]
time: 7.5e-05
Traceback (most recent call last):
File "python", line 43, in <module>
File "python", line 39, in primfacfind
AttributeError: 'list' object has no attribute 'clear'

而且我不太确定哪里出了问题。它为质因数分解给出了正确的数字并且正在打印时间,但它似乎无法清除列表。注释掉行 primfac.clear() 让它工作。

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

Python 3.3 添加了 list.clear() 方法。在早期版本中,可以通过 del primfac[:] 来实现等价。

关于python - .clear() 对于列表不起作用 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39944586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com