Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使排序函数忽略某些字符?_Python_Sorting - Fatal编程技术网

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

我对python很陌生,并对字符串数组进行排序。但是我注意到我的用例有一个问题

采用如下所示的数组:

[“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。