Serjesty 2021-10-06 22:32 采纳率: 100%
浏览 49
已结题

python用 lambda 二维数组比较取最小值

在《python代码整洁之道》中,1.3.3 应该使用lambda吗
作者对于代码1-21的书写如下

data = [[7], [3], [0], [8], [1], [4]]
def min_val(data):
"""Find minimu value from the data list."""
    return min(data, key=lambda x:len(x))

在输入min_val(data)求值运行之后并不会输出“0”,而是输出“[7]”,这是作者的错误还是我的使用和理解错误(查看英文版仍然是这样的代码)?
我的理解是

min([x[i] for x in data, for i in range(len(x))])

min(data, lambda x:x[0])

因为显然比较的是data中每个list的第一个值。
另外的,如果对于二维数组对于其所有数值比较取最小值,类似 data=[[1,2,3],[4,5,6],[7,8,9],[0,-1,10]]这种又如何用min和lambda结合求出最小值“-1”呢?

  • 写回答

1条回答 默认 最新

  • 微笑的菜鸟 2021-10-06 23:12
    关注

    print(min(min(data, key=lambda x: min(x))))

    min(data, key=lambda x: min(x))把含最小元素的一组找出来
    min(min(data, key=lambda x: min(x)))再一次 min 就把这一组里面最小的取出来,也就是所有组里面最小的数字了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月6日

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了