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

标签 python sum

所以我在玩弄并尝试仅当它是一个特定的用户输入术语时才对类似的术语求和。例如在列表 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

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

关于python - 如何对列表python中的类似数字求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979471/

相关文章:

python - 为什么 MATLAB 在使用 "from tensorflow import keras"调用 python 脚本时会产生错误?

Python lxml XPath 具有深度嵌套和特定搜索

command-line - 在批处理文件中使用运算符 "+="的问题

matlab - 在 matlab 中求和矩阵(有一个扭曲)

java - 将多个 BigDecimals 求和到一个 Map<String, BigDecimal>

mysql - 如何对 x 个相同的 MySQL SUM 表进行求和?

javascript - 如何在我的 Flaskr/Javascript 图表上显示过去的数据?

python - 为什么在Python中将一个变量的值分配给另一个变量会保存在内存中?

javascript - Python - 如何在 JS 中导出 JSON

sql - 在查询结果中插入行(总和)