python - 如何使排序函数忽略某些字符?

标签 python sorting

我对 python 还很陌生,正在对字符串数组进行排序。但我注意到我的用例存在问题。

采用如下所示的数组:

[“C”、“CSS”、“CSA”、“C-SHARP”]

当我通过sorted()传递它时,它变成:

[“C-SHARP”、“C”、“CSA”、“CSS”]

有没有办法可以忽略一些字符,对于我的情况是 '-' 字符,这样结果就变成:

[“C”、“CSA”、“C-SHARP”、“CSS”]

最佳答案

使用删除非字母数字字符的 lambda 进行排序:

inp = ["C", "CSS", "CSA", "C-SHARP"]
out = sorted(inp, key=lambda x: re.sub(r'[^A-Za-z0-9]+', '', x))
print(out)

打印:

['C', 'CSA', 'C-SHARP', 'CSS']

关于python - 如何使排序函数忽略某些字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61810643/

相关文章:

pycurl 和 openssl 的 Python 问题

python - 原生安装 PySpark 也支持 S3 访问

php - 按值排序数组,然后按键排序

objective-c - 排序 JSON 对象

algorithm - 反射(reflect)循环迭代器关于迭代次数中点的数学运算

c - 我已多次调用此函数以正确对记录结构中的元素进行排序

jquery - WordPress 类别与 jQuery 和/或 CSS 的比较

python - 对于 Project Euler,C++ 似乎比 Python Ruby 慢得多

python django wsgi 多线程 - 如何在 django 中使用多线程

python - 相关表