Python 如何使排序函数忽略某些字符?
我对python很陌生,并对字符串数组进行排序。但是我注意到我的用例有一个问题 采用如下所示的数组:Python 如何使排序函数忽略某些字符?,python,sorting,Python,Sorting,我对python很陌生,并对字符串数组进行排序。但是我注意到我的用例有一个问题 采用如下所示的数组: [“C”、“CSS”、“CSA”、“C-SHARP”] 当我将其通过排序()时,它变成: [“C-SHARP”、“C”、“CSA”、“CSS”] 是否有一种方法可以忽略某些字符,对于我来说,这些字符是'-'字符,因此结果变成: [“C”、“CSA”、“C-SHARP”、“CSS”]使用删除非字母数字字符的lambda进行排序: inp = ["C", "CSS", "CSA", "C-SHARP
[“C”、“CSS”、“CSA”、“C-SHARP”]
当我将其通过排序()时,它变成:
[“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']
排序时,您可以将“-”
替换为“
”。这不会影响最终列表
sorted(your_list, key=lambda item: item.replace("-", ""))
结果
['C', 'CSA', 'C-SHARP', 'CSS']
是的,这很有魅力!但是我想知道,正则表达式是指“-”字符还是其他字符?@ChrisGeorge你只是想删除这个字符“-”?@HozayfaElRifai是的,我只是想在我的案例中替换“-”,但我想知道如何对其他字符这样做,并且意识到正则表达式是针对字符的这个方法是最好的,你可能需要考虑删除0到9。