gpt4 book ai didi

python - 在 Python 中以独特的方式组合两个列表

转载 作者:太空狗 更新时间:2023-10-29 21:15:10 24 4
gpt4 key购买 nike

我正在研究 Project Euler 问题 5 并使用以下内容:

def findLCM(k):
start=time.time()
primes=[2,3,5,7,11,13,17,19,23]
factors=[]
for factor in range(2,k):
if factor in primes:
factors.append(factor)
else:
factorization=[]
while factor!=1:
for prime in primes:
lastFactor=prime
if factor%prime==0:
factor/=prime
factorization.append(lastFactor)
break
tmpFactors=[]
for tmpFactor in factorization:
if tmpFactor not in factors:
factors.append(tmpFactor)
else:
tmpFactors.append(tmpFactor)
factors.remove(tmpFactor)
for tmpFactor in tmpFactors:
factors.append(tmpFactor)
print factors
product=1
for factor in factors:
product*=factor
factors.sort()
end=time.time()
fnTime=end-start
return product, fnTime, factors

是否有一个 Python 函数可以像这个函数那样将因式分解和因子结合起来?例如,如果 factors=[2, 3, 5]factorization=[2, 2, 3],则组合列表应为 [2, 2 , 3, 5]

最佳答案

术语是“multisets 的并集”。

它是使用 在 Python 中实现的 collections.Counter :

>>> from collections import Counter
>>> combined = Counter([2, 3, 5]) | Counter([2, 2, 3])
>>> list(combined.elements())
[2, 2, 3, 5]

关于python - 在 Python 中以独特的方式组合两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874669/

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