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 相同型号电脑与配置,发现主板有一台貌似缺少了好多元器件似的,会影响稳定性和使用寿命吗?
    • ¥15 要求编写稀疏矩阵A的转置矩阵的算法
    • ¥15 编写满足以下要求的停车场管理程序,设停车场只有一个可停放n辆车的狭窄通道且只有一个大门可供车辆进出。
    • ¥15 C语言:数据子序列基础版
    • ¥20 powerbulider 导入excel文件,显示不完整
    • ¥15 用keil调试程序保证结果进行led相关闪烁
    • ¥15 paddle训练自己的数据loss降不下去
    • ¥20 用matlab的pdetool解决以下三个问题
    • ¥15 单个福来轮的平衡与侧向滑动是如何做到的?
    • ¥15 嵌入式Linux固件,能直接告诉我crc32校验的区域在哪不,内核的校验我已经找到了,uboot没有