按升序对数字字符串列表进行排序

2024-05-30

我创建了一个SQLite https://en.wikipedia.org/wiki/SQLite数据库有一个存储温度值的表。第一次将温度值按升序写入数据库。然后,我将数据库中的温度值读入列表中,然后将该列表添加到组合框中以选择温度。效果很好。

结果列表是:

templist = ['25', '50', '100', '150', '200', '250', '300'].

然后我向数据库添加一个新的温度值,例如“33”。

它被附加到表的末尾。如果我现在读取温度,列表将变为:

['25', '50', '100', '150', '200', '250', '300', '33'].

If I do templist.sort() or sorted(templist),最终结果是

['150', '200', '25', '250', '300', '33', '50']

有没有一种简单的方法可以按升序对列表进行排序,以便我得到以下结果?

['25', '33', '50', '100', '150', '200', '250', '300']

在这种情况下,推荐的方法是对数据库中的数据进行排序,添加一个ORDER BY在获取结果的查询末尾。像这样的事情:

SELECT temperature FROM temperatures ORDER BY temperature ASC;  -- ascending order
SELECT temperature FROM temperatures ORDER BY temperature DESC; -- descending order

如果由于某种原因这不是一个选项,您可以在 Python 中更改排序顺序,如下所示:

templist = [25, 50, 100, 150, 200, 250, 300, 33]
sorted(templist, key=int)               # ascending order
> [25, 33, 50, 100, 150, 200, 250, 300]
sorted(templist, key=int, reverse=True) # descending order
> [300, 250, 200, 150, 100, 50, 33, 25]

正如评论中指出的那样,int键(或float如果存储的是带小数的值),则在接收到的数据类型为正确排序数据时需要string,但是将温度值存储为字符串会很奇怪。如果是这种情况,请返回并从根本上解决问题,并确保存储的温度是数字。

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

按升序对数字字符串列表进行排序 的相关文章

  • 从networkx中的文件中读取具有pos属性的节点

    我是 Networkx 的新手 我有一个包含以下格式的节点位置的文件 0 23 23 12 23 where 0是一个节点 23 23 and 12 23分别是X和Y坐标 有谁知道如何读取节点pos属性 使用类似的函数read edgeli
  • Python TypeError:不支持的操作数类型 -:“int”和“function”

    我是 Python 初学者 正在做一项作业 我不断得到TypeError unsupported operand type s for int and function 即使在研究了错误并应用了建议的修复之后 我并不是在寻找任何人给我一个解
  • 并行执行按位运算的代码

    我有这段代码 通过将该 AU 矩阵的每个字节 8 个元素打包到 A 中来减少内存消耗 从而使 100k 200k 矩阵占用更少的空间 正如您所期望的 这段代码需要永远运行 我也计划将行数增加到 200k 我正在一个非常强大的实例 CPU 和
  • Python Jinja2 调用宏会导致(不需要的)换行符

    我的 JINJA2 模板如下所示 macro print if john name if name John Hi John endif endmacro Hello World print if john Foo print if joh
  • Python 中没有名称属性的表单提交

    背景 在Python中使用urllib和urllib2 您可以进行表单提交 您首先创建一个字典 formdictionary search stackoverflow 然后使用 urllib 的 urlencode 方法来转换这个字典 pa
  • 如何为 PyYAML 编写代表程序?

    我想要一个自定义函数来序列化任意 python 对象 就像 json dump 函数有一个名为 default 的可选参数 如果对象不是 json 可序列化的 它应该是 json 转储器将调用的函数 我只是想从 json 包中执行相当于此操
  • 将 postgres 连接到 django 时遇到问题

    以下文档来自Django Postgres 文档 https docs djangoproject com en 4 1 ref databases postgresql notes我添加到我的settings py 在我设置的设置中 DA
  • python osmnx - 仅提取一个国家的大型高速公路

    我知道可以通过 OSMNX python 包提取城市的道路网络 详情请参阅https geoffboeing com 2016 11 osmnx python street networks https geoffboeing com 20
  • 将列表列表替换为“压缩”列表列表,同时保持顺序

    我有一个列表列表 如我所附的代码所示 如果有任何共同值 我想链接每个子列表 然后我想用列表的精简列表替换列表的列表 例子 如果我有一个清单 1 2 3 3 4 I want 1 2 3 4 如果我有 4 3 1 2 3 I want 4 3
  • 使用 SQLAlchemy 查询 Pandas DataFrame 时重命名列

    当您将数据查询到 pandas 数据帧时 有没有办法保留 SqlAlchemy 属性名称 这是我的数据库的简单映射 对于 school 表 我将数据库名称 SchoolDistrict 重命名为较短的 district 我从 DBA 中删除
  • Python父类访问子私有变量

    以下代码会生成错误 class A object def say something self print self foo print self bar class B A def init self self foo hello sel
  • 将 gtk.DrawingArea 保存到文件

    我想使用 PIL 将 gtk DrawingArea 对象内容保存到 jpeg 文件 我特别想添加这个脚本 http pygstdocs berlios de pygst tutorial webcam viewer html制作照片的可能
  • 折叠 numpy 数组除前两个维度之外的所有维度

    我有一个可变维度的 numpy 数组 例如它可以具有以下形状 64 64 64 64 2 5 64 64 40 64 64 10 20 4 我想要做的是 如果维数大于 3 我想将其他所有内容折叠 堆叠到第三维中 同时保留顺序 因此 在我上面
  • pip 升级到 pip 10.x.x 后解析需求文件的正确方法?

    所以今天我确实发现随着发布pip 10 x x the req软件包更改了其目录 现在可以在下面找到pip internal req 由于通常的做法是使用parse requirements功能在你的setup py从需求文件中安装所有依赖
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • Python - 从一定范围内随机采样,同时避免某些值

    我一直在阅读有关random sample 函数在random模块 但没有看到任何可以解决我的问题的东西 我知道使用random sample range 1 100 5 会给我来自 人群 的 5 个独特样本 我想得到一个随机数range
  • Python httplib 和 POST

    我目前正在使用别人编写的一段代码 它用httplib向服务器发出请求 它以正确的格式提供所有数据 例如消息正文 标头值等 问题是 每次尝试发送 POST 请求时 数据都在那里 我可以在客户端看到它 但没有任何内容到达服务器 我已经阅读了库规
  • tkinter 库 treectrl 转换为 exe 安装程序时出现 cx_freeze 错误

    我使用的是 python 版本 3 7 我使用了这个名为 treectrl 的外部库 当我运行 py 文件时它工作得很好 但是当我使用 cx freeze 转换为 exe 文件时 它给了我错误 NomodulleFound 名为 tkint
  • Maya python 连接选择的属性

    我一直在尝试制作一个简单的脚本 它将采用两个视口选择 然后基本上将第二个视口的旋转连接到第一个 我不确定如何正确地从视口选择中为对象创建变量 这是我的尝试 但不起作用 import maya cmds as cmds sel cmds ls
  • 在 Python 中为非唯一列表创建虚拟列

    目前我有下一个数据框 import pandas as pd df pd DataFrame ID 1 2 3 4 5 col2 a b c c d e f f b f a c b b a b print df ID c

随机推荐