是否可以使用reduce对列表进行排序?

2024-03-05

我得到这个作为练习。我当然可以使用以下方法对列表进行排序sorted()或来自Python标准库的其他方式,但在这种情况下我不能。我think我只应该使用reduce().

from functools import reduce
arr = [17, 2, 3, 6, 1, 3, 1, 9, 5, 3]
sorted_arr = reduce(lambda a,b : (b,a) if a > b else (a,b), arr)

我得到的错误:

TypeError: '>' not supported between instances of 'tuple' and 'int'

这是预期的,因为我的reduce函数将一个元组插入到int数组中,而不是2个单独的整数。然后将元组与整数进行比较...

有没有办法将 2 个数字插入到列表中,并且只对列表中的每隔两个数字运行该函数?或者使用reduce()交换数字的方法?

文档对reduce函数的描述很少,所以我现在没有想法。https://docs.python.org/3/library/functools.html?highlight=reduce#functools.reduce https://docs.python.org/3/library/functools.html?highlight=reduce#functools.reduce


这是使用以下方法对列表进行排序的一种方法reduce:

arr = [17, 2, 3, 6, 1, 3, 1, 9, 5, 3]
sorted_arr = reduce(
    lambda a, b: [x for x in a if x <= b] + [b] + [x for x in a if x > b],
    arr,
    []
)
print(sorted_arr)
#[1, 1, 2, 3, 3, 3, 5, 6, 9, 17]

在每个归约步骤中,构建一个新的输出列表,该列表连接所有小于或等于的值的列表b, [b],以及所有大于的值的列表b。使用可选的第三个参数reduce将输出初始化为空列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用reduce对列表进行排序? 的相关文章

随机推荐

  • Chrome 中的 ScriptManager.RegisterHiddenField

    我正在处理一些利用 ScriptManager RegisterHiddenField 来跟踪数据模型修改的代码 它在 IE 和 FF 中运行良好 但在 Chrome 中遇到问题 如果您添加以下内容 就会出现该问题的一个简单示例 prote
  • 如何获取 ClickOnce 应用程序的文件夹路径

    我需要在控制台 ClickOnce 所在的同一文件夹中写入一个文件 application 可执行文件 驻留 它从中启动的文件夹 我尝试使用Application StartupPath Path GetDirectoryName Asse
  • 在C中缩小文件

    如何用 C 语言缩小文件 例如 如果我打开一个 2mb 的文件 做了一些工作并决定只有 1mb 的文件仍然存在 这是如何完成的 我知道如何使用 write fd 写入文件 但是如果我想在文件中间切出某些部分或截断它怎么办 您可能正在寻找tr
  • 组合多个控件的控件子类

    我正在尝试扩展 TextBox 以在其左侧添加一个标签并将其视为一个控件 这样我就不必跟踪它们的大小 位置等 我创建了一个扩展 Control 并具有 TextBox 和 Label 字段的 TextBoxWithLabel 类 但我不太确
  • BASH_REMATCH 不捕获

    我正在尝试捕获 bash 中路径的一部分 Input Users foo virtualenvs venv test server Code bin zsh regex venv if VIRTUAL ENV regex then echo
  • 将图像插入 MySQL 数据库或从 MySQL 数据库查看图像

    我在数据库中插入图像时遇到问题 该表具有以下结构 id gt INT 3 gt 自动增量 名称 gt VARCHAR 30 扩展名 gt VARCHAR 10 可能太短 img gt 中型BLOB 插入图像的PHP代码是 if FILES
  • 通过滚动移动 DIV

    我正在创建一个 jQuery 滚动条 它滚动 中的内容 这就像jQuery 滚动窗格 http jscrollpane kelvinluck com 我已经到了需要移动滚动按钮的地步 我的问题是 在没有任何 UI 插件的情况下 最好的方法是
  • 如果我加载一个包含 (ns my-namespace) 的文件,为什么它不切换我当前的命名空间?

    我有一个这样的文件 ns boston core If I load boston core 然而 从 REPL 来看 我的 ns 没有改变为boston但仍然存在user 为什么是这样 这是因为 load 只是加载指定的文件 到 bost
  • 从 glm 中提取 p 值

    我正在运行许多回归 并且只对一个特定变量的系数和 p 值的影响感兴趣 因此 在我的脚本中 我希望能够从 glm 摘要中提取 p 值 获取系数本身很容易 我知道查看 p 值的唯一方法是使用 summary myReg 还有其他办法吗 e g
  • 如何检测会话何时结束

    有没有办法检测有人离开您的网站 到目前为止我知道如何使用ignore user abort 但据我所知 这就是了 我需要知道这一点的原因是因为我需要一个脚本来在有人离开网站时执行 在数据库中为每个用户记录一个时间戳 并在每次页面加载时 或通
  • 如何暂时禁用“返回值可能未定义”警告?

    我想在代码中禁用特定警告 W1035 因为我认为编译器对此警告是错误的 function TfrmNagScreen Run TOption begin if ShowModal mrOk then Result TOption rdgAc
  • Bootstrap 3 导航栏链接不起作用

    我有一个带有链接的导航栏 品牌 链接有效 但没有任何内容ul做 我读过关于e preventDefault 当它与 ul nav gt li click function e 我也读过它与z index 我没有发现任何这样的情况 除非我找不
  • Heiken Ashi 使用 pandas python

    I was defining a function Heiken Ashi which is one of the popular chart type in Technical Analysis I was writing a funct
  • Android DatePicker 显示月份名称

    我正在尝试使用日期选择器 并且在选择时我想以以下格式显示日期 月份名称 日期 年份 final Calendar c Calendar getInstance mYear c get Calendar YEAR 13 mMonth c ge
  • 使用 constexpr auto/char-array 变量观察到的不同行为

    跟进这个问题拥有 constexpr 静态字符串会导致链接器错误 https stackoverflow com questions 34792403 having a constexpr static string gives a lin
  • 为什么这个程序用“YES”和“true”产生不同的结果?

    这是完整的程序 你能找出它的控制台输出吗 import
  • 使用 jQuery 求数组中值的总和[重复]

    这个问题在这里已经有答案了 我有一个包含一些值的数组 我想得到它们的总和 这是示例 var somearray 20 40 80 400 我想使用 jQuery 对这些值求和 在此示例中 结果将为 540 也可以处理浮点数 旧 JavaSc
  • 对于自定义类,Python 相当于 C++ begin() 和 end()

    假设您有一个字典 其键是整数 这些值也是字典 其键是字符串 其值是 numpy 数组 就像是 custom 1 a np zeros 10 b np zeros 100 2 c np zeros 20 d np zeros 200 我在代码
  • 如何使 python 数据类可哈希?

    我有一个数据类 我想使用以下方法对其实例进行哈希和排序id会员作为钥匙 from dataclasses import dataclass field dataclass eq True order True class Category
  • 是否可以使用reduce对列表进行排序?

    我得到这个作为练习 我当然可以使用以下方法对列表进行排序sorted 或来自Python标准库的其他方式 但在这种情况下我不能 我think我只应该使用reduce from functools import reduce arr 17 2