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

标签 python list

我正在研究 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/

相关文章:

python - GCP Cloud Shell 在哪个目录中运行?

python - 与列表相比,在生成器上迭代多次的速度

java - 如何对列表中两个不同类的字段进行排序?

javascript - 为什么我需要删除Child表单输入来调用自定义GAE API

c# - 为什么返回集合接口(interface)而不是具体类型?

python - 从多索引数据框中获取一个索引

list - 如何按部分名称查找和显示目录文件

python - [for 'elem' in myList] 与 [for 'i' in range(x, y)] 的区别是什么,引用列表元素

python - 如何拆分数据框单元格中的数据并在拆分时执行 Pandas groupby?

python - 如何将过滤后的 pyshark FileCapture 保存到新的 pcap 文件?