Python 列表映射后的平均值

 更新时间:2021年11月11日 11:32:48   作者:Felix  
这篇文章主要介绍了Python 列表映射后的平均值,下面文章将围绕Python 列表映射后的平均值得相关资料展开详细内容,需要的朋友可以参考一下

本篇阅读的代码片段来自于30-seconds-of-python

1、average_by

def average_by(lst, fn=lambda x: x):
  return sum(map(fn, lst), 0.0) / len(lst)

# EXAMPLES
average_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda x: x['n']) # 5.0


该函数用于在列表中求取平均数。该代码片段中主要使用了lambda表达式和map函数。该函数的主要逻辑是使用lambda表达式和map函数提取由待计算的数值组成的迭代器,然后使用sum函数计算列表的和,再除以列表长度。

2、lambda表达式

形如lambda parameters: expression的表达式可以创建一个匿名函数。在该代码片段中,lambda表达式出现在函数average_by的参数定义中,作为一个参数传给了fn。因此在average_by函数体中fn作为刚刚在参数中定义的函数发挥作用。

函数average_by的默认参数中的lambda表达式是一个直接返回输入参数的函数。在例子中,向average_by传入的匿名函数返回字典中key值为n项的值。

3、map函数

map函数是Python内置的一个高阶函数,这个函数很有意思,它的参数是一个函数以及一个可迭代对象。它会返回一个迭代器,这个迭代器会将参数中的函数应用在参数中可迭代对象上。

4、其他类似函数

30-seconds-of-python中还有一些类似的代码片段。在理解了average_by函数之后,这些都很容理解。

4.1 max_by

def max_by(lst, fn):
  return max(map(fn, lst))

# EXAMPLES
max_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) # 8

4.2 min_by

def min_by(lst, fn):
  return min(map(fn, lst))

# EXAMPLES
min_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) # 2

4.3 sum_by

def sum_by(lst, fn):
  return sum(map(fn, lst))

# EXAMPLES
sum_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) # 20

到此这篇关于Python 列表映射后的平均值的文章就介绍到这了,更多相关Python 列表映射内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python利用imshow制作自定义渐变填充柱状图(colorbar)

    Python利用imshow制作自定义渐变填充柱状图(colorbar)

    这篇文章主要介绍了Python利用imshow制作自定义渐变填充柱状图(colorbar),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python使用pygame模块实现坦克大战游戏

    python使用pygame模块实现坦克大战游戏

    这篇文章主要为大家详细介绍了python使用pygame模块实现坦克大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Python实现聚类K-means算法详解

    Python实现聚类K-means算法详解

    这篇文章主要介绍了Python实现聚类K-means算法详解,K-means(K均值)算法是最简单的一种聚类算法,它期望最小化平方误差,具体详解需要的朋友可以参考一下
    2022-07-07
  • Python调用Java可执行jar包问题

    Python调用Java可执行jar包问题

    这篇文章主要介绍了Python调用Java可执行jar包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Python capitalize()函数的用法详解

    Python capitalize()函数的用法详解

    在Python中,capitalize()将字符串的第一个字符转换为大写字母,并将所有其他字符(如果有的话)转换为小写,本文就将给大家介绍一下Python capitalize()函数的使用方法,感兴趣的朋友跟着小编一起来看看吧
    2023-07-07
  • Python实战之手写一个搜索引擎

    Python实战之手写一个搜索引擎

    这篇文章主要介绍了Python实战之手写一个搜索引擎,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • python 申请内存空间,用于创建多维数组的实例

    python 申请内存空间,用于创建多维数组的实例

    今天小编就为大家分享一篇python 申请内存空间,用于创建多维数组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法

    Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法

    下面小编就为大家分享一篇Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python isalnum()函数的具体使用

    Python isalnum()函数的具体使用

    本文主要介绍了Python isalnum()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 详解如何使用Python的Plotly库进行交互式图形可视化

    详解如何使用Python的Plotly库进行交互式图形可视化

    Python中有许多强大的工具和库可用于创建交互式图形,其中之一就是Plotly库,Plotly库提供了丰富的功能和灵活的接口,使得创建各种类型的交互式图形变得简单而直观,本文将介绍如何使用Plotly库来创建交互式图形,需要的朋友可以参考下
    2024-05-05

最新评论