使用自定义比较函数对列表列表进行排序

2023-12-06

我知道有几个这样命名的问题,但它们似乎对我不起作用。

我有一个列表列表,50 乘以 5 个元素。我想通过对每个元素应用自定义比较函数来对该列表进行排序。此函数计算元素排序所依据的列表的适合度。我创建了两个函数,比较和适应度:

def compare(item1, item2):
    return (fitness(item1) < fitness(item2))

and

def fitness(item):
    return item[0]+item[1]+item[2]+item[3]+item[4]

然后我尝试通过以下方式给他们打电话:

sorted(mylist, cmp=compare)

or

sorted(mylist, key=fitness)

or

sorted(mylist, cmp=compare, key=fitness)

or

sorted(mylist, cmp=lambda x,y: compare(x,y))

我还尝试了具有相同参数的 list.sort() 。但无论如何,函数都不会获取列表作为参数,而是获取None。我不知道为什么会这样,主要来自 C++,这与我对回调函数的任何想法相矛盾。如何使用自定义函数对此列表进行排序?

Edit我发现了我的错误。在创建原始列表的链中,一个函数不返回任何内容,但使用了返回值。抱歉打扰了


另外,您的比较功能不正确。它需要返回 -1、0 或 1,而不是您所拥有的布尔值。正确的比较函数是:

def compare(item1, item2):
    if fitness(item1) < fitness(item2):
        return -1
    elif fitness(item1) > fitness(item2):
        return 1
    else:
        return 0

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

使用自定义比较函数对列表列表进行排序 的相关文章

  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • 如何使用 Selenium 和 ChromeDriver 解决 TypeError: 'module' object is not callable 错误 [重复]

    这个问题在这里已经有答案了 代码试验 from selenium import webdriver from selenium webdriver chrome options import Options as Chromeoptions
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • Firebase Firestore:获取文档的生成 ID (Python)

    我可以创建一个新文档 带有自动生成的 ID 并存储对其的引用 如下所示 my data key value doc ref db collection u campaigns add my data 我可以像这样访问数据本身 print d
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 背包C#实现任务

    我正在尝试在给定条件下编写背包 C 算法 但我总是遇到两个问题 我收到 索引超出数组范围 错误 或者我的结果仅为 0 我找到了几个 Knapsack 实现的代码示例 但无法弄清楚我做错了什么 代码示例 https www programmi
  • JS 库最佳实践:返回未定义或在错误的函数输入时抛出错误?

    当用 JavaScript 编写库时 处理函数无效输入的最标准 最友好 的方法是什么 我的直觉告诉我 返回 undefined 是完全可以的 但是抛出错误实际上更有帮助吗 还是真的不重要 我还可以看到返回 false null 甚至 1 但
  • 无法在 Windows 上使用 Android Studio 1.3.2 调试 NDK 示例

    我有Android Studio 1 3 2 NDK r10e gradle实验插件0 2 0 我已经克隆了ndk 样本仓库并仔细遵循以下说明NDK 预览 包括创建本机配置 当我选择 LLDB 作为调试器并调试 Teapot NDK 示例应
  • 在 webview 控件中显示本地 PDF 文件 - 显示空白 Pdf 文件

    我正在研究 Xamarin Forms UWP 我想在webview控件中显示本地PDF文件 我点击了这两个链接 https developer xamarin com recipes cross platform xamarin form
  • 右键单击停止传播

    如何停止 javascript 中右键单击事件的传播 以便父元素根本检测不到它们 当我单击以下 html 中的链接时 未检测到左键单击 但文档元素将右键单击检测为 单击 事件而不是 contextmenu 事件 我尝试将事件侦听器附加到 m
  • 如何才能完全禁用对assert()的调用?

    我的代码充满了对assert condition 在我使用的调试版本中g g这触发了我的断言 出乎意料的是 在我的发布版本中也触发了相同的断言 即没有编译的版本 g option 如何在编译时完全禁用断言 我应该明确定义NDEBUG在我生成
  • 具有 sql 转义的动态 mysql 查询是否与准备好的语句一样安全?

    我有一个应用程序 通过将动态 mysql 查询与 mysql mysqli 真实转义字符串结合使用 它将大大受益 如果我通过 mysql real escape 运行从用户收到的所有数据 它会和使用 mysql 准备好的语句一样安全吗 是的
  • 从 jQuery Mobile 重置值

    我需要重置我的页面的所有字段元素的值 这些元素是 输入 选择 组合框 复选框和单选组 搜索发现有如下代码 attr value input type checkbox attr checked false select each funct
  • 在 xslt 中添加一个或递增变量

    我想让计数器值根据条件递增 但我无法增加值或向全局变量加 1 我正在使用以下代码
  • Swift 扩展示例

    我本来想知道如何制作这样的东西 UIColor myCustomGreen 这样我就可以定义自己的颜色并在我的应用程序中使用它们 我之前研究过扩展 我认为我可能可以使用它们来解决我的问题 但我不记得到底如何设置扩展 在撰写本文时在 Goog
  • GAE (python) 中是否有与 Rails 的“flash”消息等效的东西?

    Ruby on Rails 有一种方法可以设置消息 例如flash notice and flash error 用户将在下一次机会看到 它对于在用户被重定向时 例如返回到登录页面 时通知用户登录失败等情况特别有用 在 Google App
  • 我应该在带有模板的主题观察者模式中使用动态转换吗

    通过参考文章使用模板实现主题 观察者模式 template
  • 5位数字可以表示的最大值和最小值是多少?以2的补码表示

    假设 2 的补码表示形式的 5 位数字可以表示的最大值和最小值是多少 我是否找到 5 位数字的最小值和最大值 即 00000 但我不确定最大值是多少 然后转换为二进制补码 这听起来很愚蠢 但这是我唯一能想到的 我的最后一个问题是 处理器中存
  • 将 erb 从数据库渲染到视图中问题请帮忙!

    我正在数据库中保存一些 erb 并将其呈现在视图中 如下所示 erb ERB new content render text gt erb result 我在尝试渲染 erb 时遇到错误 该 erb 中的 image tag 保存在数据库中
  • Firebase 身份验证对象可以处理同时身份验证类型吗?

    这个帖子描述如何将多个帐户绑定到一个帐户 uid in a users收藏 以下是这些安全规则 rules users uid write auth null data val null auth provider facebook aut
  • 有没有办法在Oracle数据库中创建自动递增的Guid主键?

    我主要使用 sql server 当我使用数据库时 并且我正在尝试学习 pl sql Oracle 中是否有相当于 sql server 自动生成的 Guid 作为主键的东西 您可以使用SYS GUID 生成 GUID 并将其用作列的默认值
  • 如何多次调用一个函数?

    我的问题是 我正在开发一个适合移动设备的网站 其中包含 2 个样式表 一个用于 面向 PC 的可视化 另一个用于移动可视化 除了 2 个 CSS 之外 我还需要一个函数来修改一些内容href从一种可视化模式切换到另一种可视化模式时菜单上的属
  • 尝试根据 JSON 字符串值动态设置图标

    我有一个位于服务器上的 JSON 格式的客户端配置 示例 JSON 类似于 icon facebook 我有下面的小部件 class MySocialIcons extends StatelessWidget MySocialIcons t
  • 为什么我的“公式”变量不会像电子表格中那样自动更新?如何重新计算该值?

    我注意到初学者经常犯以下简单的逻辑错误 由于他们确实不理解这个问题 a 他们的问题不能真正说是由拼写错误引起的 完整的解释会很有用 b 他们缺乏必要的理解 无法创建正确的示例 用正确的术语解释问题以及清楚地提问 因此 我代表他们要求制作一个
  • 使用自定义比较函数对列表列表进行排序

    我知道有几个这样命名的问题 但它们似乎对我不起作用 我有一个列表列表 50 乘以 5 个元素 我想通过对每个元素应用自定义比较函数来对该列表进行排序 此函数计算元素排序所依据的列表的适合度 我创建了两个函数 比较和适应度 def compa