Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
awesome task solution in Creative category for Sort by Extension by ChromeBrainer
from typing import List
def sort_by_ext(files: List[str]) -> List[str]:
l=[]
for i in files:
if i.startswith('.') or i.endswith('.'):
if i.count('.')>1 and not i.endswith('.'):#.d.dc not for name.n.
break
l.append(i)
files=[i for i in files if i not in l]
return l+ sorted(files,key=lambda x:''.join([*reversed(x)])[''.join([*reversed(x)]).index('.')-1::-1]+''.join([*reversed(x)])[''.join([*reversed(x)]).index('.'):] )
if __name__ == '__main__':
print("Example:")
print(sort_by_ext(['1.cad', '1.bat', '1.aa']))
print(sort_by_ext(['1.cad', '1.bat', '1.aa', '.aa.doc']))
print(sort_by_ext(['1.cad', '1.bat', '1.aa', '1.aa.doc']))
print(sort_by_ext(['1.cad', '1.bat', '1.aa', '2.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.bat', '.aa', '3.tdt', '.bat']) == ['.aa', '.bat', '1.bat', '1.cad','3.tdt']
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!")
May 8, 2021