Python:如何根据另一个列表对列表进行排序?

2024-03-19

以下是我试图解决的用例:

我有 2 个列表:(l and d)

In [1197]: l
Out[1197]: 
[['Cancer A', 'Ecog 9', 'Fill 6'],
 ['Cancer B', 'Ecog 1', 'Fill 1'],
 ['Cancer A', 'Ecog 0', 'Fill 0']]

In [1198]: d
Out[1198]: [[100], [200], [500]]

这是一个由两部分组成的问题:

  1. Sort l基于值的优先级。例如:Cancer, Ecog and Fill(在这种情况下key=(0,1,2))。它可以是类似的东西Ecog, Cancer, Fill所以,键=(1,0,2)。
  2. Sort d以相同的顺序l已在上面的步骤中排序。

我能够实现的步骤#1,如下所示:

In [1199]: import operator
In [1200]: sorted_l = sorted(l, key=operator.itemgetter(0,1,2))

In [1201]: sorted_l
Out[1200]: 
[['Cancer A', 'Ecog 0', 'Fill 0'],
 ['Cancer A', 'Ecog 9', 'Fill 6'],
 ['Cancer B', 'Ecog 1', 'Fill 1']]

现在,我想对以下值进行排序d按照相同的顺序sorted_l.

预期输出:

In [1201]: d
Out[1201]: [[500], [100], [200]]

做这个的最好方式是什么?


以下是在 @juanpa.arrivillaga 的帮助下的解决方案:

In [1272]: import operator
In [1273]: key = operator.itemgetter(0, 1, 2)

# Here param key, lets you sort `l` with your own function.
In [1275]: sorted_l,sorted_d = zip(*sorted(zip(l, d), key=lambda x: key(x[0])))

In [1276]: sorted_l
Out[1276]: 
(['Cancer A', 'Ecog 0', 'Fill 0'],
 ['Cancer A', 'Ecog 9', 'Fill 6'],
 ['Cancer B', 'Ecog 1', 'Fill 1'])

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

Python:如何根据另一个列表对列表进行排序? 的相关文章

  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 内置方案以检查列表包含情况

    在Python中 我可以执行 x in list 来查看列表是否包含x 方案中是否有等效的内置功能可以做到这一点 The R5RS http schemers org Documents Standards R5RS HTML r5rs Z
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • mockito 的学习资源 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要使用mockito为现有代码创建单元测试框架 我找不到一个开始学习 Mockito 的好地方 你能给我推荐一个很好的mockito学
  • 在缓存图像上触发 load() 事件的更好方法是什么?

    我正在编写一个脚本 该脚本等待隐藏内容加载div在激活指向它的缩略图之前 preload img first child bind load activateThumb each function if this complete this
  • 如何获取属性的串联值?

    XPath 表达式 div concat id class 失败并出现错误 The expression is not a legal expression 在 Firefox 25 0 中 来自用户脚本 为什么 以及如何解决 对于输入 d
  • 如何通过 MediaWiki API 从 Wikipedia 文章中获取信息框? [复制]

    这个问题在这里已经有答案了 维基百科文章可能有信息框模板 通过以下调用 我可以获得包含信息框的文章的第一部分 http en wikipedia org w api php action parse pageid 568801 sectio
  • 使用 sed 将文件中的字符串替换为该名称的变量的内容

    我正在尝试使用 sed 将 XXX 形式的文件中的模板字符串替换为 shell 脚本中名为 XXX 的变量的值 例如以下完美运行 sed s user home user home gi So if user home fred下列 Nam
  • 使用log4j2,如何记录键值对

    我需要创建带有键值对的日志 如下所示 PatternLayout 是否支持使用 log4j2 xml 对线程中的静态字段 如 log level class name event id 等 执行此操作 日志样本 2014 06 18 11
  • Power BI 图表中的自定义排序

    最近我遇到一个问题 我需要按照我在 PowerBi 报告中定义的方式显示列顺序 问题是 PowerBI 按升序 A gt Z 或降序 Z gt A 对列进行排序 那么如果必须应用他的自定义顺序 他应该如何实现这一目标 Here is and
  • Azure 云上的开发、暂存和生产环境

    我正在开发的应用程序需要三个环境 一个开发环境 其中最新版本的代码 在每次提交上构建 和测试发生 我们合并开发和测试环境以提高效率 我们有一个临时环境 用于产品演示和演示 以及具有实时数据和客户的生产环境 现在 这将如何映射到 Azure
  • Julia:大型数组的打印有限

    我使用脚本文件在 Julia 中生成了许多大型数组 打印整个数组很麻烦 但我想检查前几行是否有意义 我知道 REPL 中的打印受到屏幕尺寸的限制 例如 julia gt zeros 1000 10 1000 10 Array Float64
  • Java中解析远程文件的FLV头(持续时间)

    我正在寻找一个专门在 Java 中解析 FLV 标头持续时间的示例 给定 FLV 文件的 URL 我只想下载标头并解析出持续时间 我有 FLV 规范 但我想要一个示例 Python 或 PHP 也可以 但首选 Java 您在下载标头或解析标
  • Phoenix:使用 Content-Type: application/json 处理 POST 请求正文

    我想处理传入的 POSTapplication json内容类型 我只是想返回发布的 JSON 作为对测试的响应 如下所示 WebhookController 控制器 pipeline api do plug accepts json en
  • 如何在 timeFormat d3 中添加自定义值?

    我有一个数据集 日期指定为date Q3 1954 Q4 1954 Q1 1955 Q2 1955 Q3 1955 Q4 1955 Q3 1955 Q4 1955 Q1 1956 我希望它位于 x 轴上并且数据点对应于每个日期 D3 v4
  • 将焦点设置在功能组件中的特定按钮上的反应方式?

    您好 我是新来反应的 在我的页面加载上 我需要将焦点放在按钮上 我正在使用功能组件 我看过类组件的示例 其中使用 componentDidMount 并使用 refs 设置焦点 这里我使用功能组件 也没有使用 ComponentDidMou
  • __init__() 收到意外的关键字参数“inputs”

    class Model def init self self model Sequential self model add Conv2D 24 3 2 valid input shape 75 75 3 self model add Ba
  • TypeScript 项目中缺少基本 DOM 类型

    我正在使用 TypeScript 设置一个 Web 应用程序 但我似乎缺少一些我需要的基本类型 当我编译时 npm run build 我收到以下错误 错误 TS2304 找不到名称 HTMLElement 错误 TS2304 找不到名称
  • XCode 不会将子目录中的 C++ 源文件添加到编译源中

    我使用 XCode 5 1 进行 C 开发 我有现有代码 通过从 Finder 拖动文件将其添加到项目中 该项目显示了所有必要的 h and cpp文件 但是当我点击Build Phases gt Compile Sources 我只看到来
  • 在 PHP 中从多维数组构建路径

    我有一个数组 例如 tree array folder 1 gt array folder 1 1 folder 1 2 gt array folder 1 2 1 folder 1 2 2 folder 1 3 folder 2 gt a
  • 展开和折叠闪亮数据表中的子行

    我在复制 Shiny 中的数据表对象时遇到问题 目前 当我在 Shiny 环境之外运行代码的数据表部分时 我可以显示我想要的内容 但是 当我运行整个代码时 它没有显示子表 library DT library data table libr
  • 无法在远程主机上构建 docker 容器

    我有一组从 yml 文件生成的 docker 容器 并且工作正常 我现在想将它们部署到另一台机器上 在另一篇文章中here https stackoverflow com questions 57602727 docker containe
  • Python:如何根据另一个列表对列表进行排序?

    以下是我试图解决的用例 我有 2 个列表 l and d In 1197 l Out 1197 Cancer A Ecog 9 Fill 6 Cancer B Ecog 1 Fill 1 Cancer A Ecog 0 Fill 0 In