Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
sort_by_extension-re_finally! solution in Clear category for Sort by Extension by nazarstakhovskyi
from typing import List
import re
def sort_by_ext(files: List[str]) -> List[str]:
sorted(a := [i for i in files if re.search("^\.[a-z]*$", i) != None or re.search(".*\.$", i) != None])
by_extension = sorted(files, key = lambda i: re.search("(^.*\.)([a-z]*$)", i).group(2, 1))
for i in by_extension:
if not i in a:
a.append(i)
return a
if __name__ == '__main__':
print("Example:")
print(sort_by_ext(["1.cad","2.bat","1.aa","1.bat"]))
# These "asserts" are used for self-checking and not for an auto-testing
assert sort_by_ext(['1.cad', '1.bat', '1.aa']) == ['1.aa', '1.bat', '1.cad']
assert sort_by_ext(['1.cad', '1.bat', '1.aa', '2.bat']) == ['1.aa', '1.bat', '2.bat', '1.cad']
assert sort_by_ext(['1.cad', '1.bat', '1.aa', '.bat']) == ['.bat', '1.aa', '1.bat', '1.cad']
assert sort_by_ext(['1.cad', '1.bat', '.aa', '.bat']) == ['.aa', '.bat', '1.bat', '1.cad']
assert sort_by_ext(['1.cad', '1.', '1.aa']) == ['1.', '1.aa', '1.cad']
assert sort_by_ext(['1.cad', '1.bat', '1.aa', '1.aa.doc']) == ['1.aa', '1.bat', '1.cad', '1.aa.doc']
assert sort_by_ext(['1.cad', '1.bat', '1.aa', '.aa.doc']) == ['1.aa', '1.bat', '1.cad', '.aa.doc']
print("Coding complete? Click 'Check' to earn cool rewards!")
June 9, 2021