Skip to main content
 首页 » 编程设计

python之如何对列表python中的类似数字求和

2025年05月04日14cyq1162

所以我在玩弄并尝试仅当它是一个特定的用户输入术语时才对类似的术语求和。例如在列表 L = [1,2,2,3,4] 中,然后我说我想要所有为 2 的项的总和,所以 2 出现了两次,我知道2+2=4 所以它会返回 4。

到目前为止,我觉得这比我想象的要容易得多:

def main(): 
    L = eval(input("Please enter the list") 
    num = eval(input('Enter the number that has like terms')) 
    sloppyway = [] 
    for nums in L: 
        if nums == num: 
            sloppyway.append(nums) 
    return (sum(sloppyway)) 

我认为这可行,但我觉得有一种更时尚、更优雅的方法可以做到这一点。有什么建议吗?

请您参考如下方法:

您可以将 sum 函数与生成器表达式一起使用,如下所示:

>>> L = [1,2,2,3,4]  
>>> num=2 
>>> sum(i for i in L if i==num) 
4 

或者作为一种效率较低的方法,您可以使用 filter 函数:

>>> sum(filter(lambda x :x==2,L)) 
4 

但请注意,如果您的情况更复杂,这可能会有所帮助!