微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何基于整数部分对列表中的字符串进行排序?

如何解决如何基于整数部分对列表中的字符串进行排序?

我想编写一个函数,该函数按其整数部分对列表中的字符串进行排序。这些排序后的字符串将稍后用于以所需方式在Unable to cast observablecollection(of base) to observablecollection(of derived)数据帧中移动某些变量。 功能需要执行所有操作。换句话说,它会覆盖给定列表作为回报。在下面可以找到我尝试过的东西:

pandas

运行此功能时,我收到以下信息:

import re
import pandas

wholeregex = r"^[o][0-9]+"  # e.g. "o1","o9","o10" etc.
intregexkey = r"^[o]([0-9]+)"  # so I'm looking for integer parts only
varslist = list(df.filter(regex=wholeregex).columns)  # df was defined somewhere before

# e.g. varslist = ["o3","o8","o10","o1"]
#result should be varslist = ["o1","o3","o10"]

def strintkeysort(regex,m):
    lstreturn = []
    r = re.compile(regex)
    lstreturn = sorted(m,key=int(r.search(m).group(1)))
    return lstreturn

varslist = strintkeysort(intregexkey,varslist)

它基于@Ashwini Chaudhary的答案(Sort list of strings by a part of the string)。让我感到非常困惑的是,当我尝试完全按照他提出的方式进行操作时,一切都很好。因此,我决定增强此功能,并立即执行所有操作(不起作用)(我是Python新手)。

另一方面:Traceback (most recent call last): File "C:/path/script.py",line 130,in <module> varslist = strintkeysort(intregexkey,varslist) File "C:/path/script.py",line 127,in strintkeysort lstreturn = sorted(m,key=int(r.search(m).group(1))) TypeError: expected string or bytes-like object 中有专门的解决方案吗?

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?