如何解决如何基于整数部分对列表中的字符串进行排序?
我想编写一个函数,该函数按其整数部分对列表中的字符串进行排序。这些排序后的字符串将稍后用于以所需方式在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 举报,一经查实,本站将立刻删除。