W ramach podobnego zadania musiałem również pobrać darmowy list motywacyjny. Zdecydowałem, że chcę najwyższego dostępnego listu. Najpierw napisałem to bardziej idiomatycznie, a potem chrupnąłem do 1-linijki, żeby sprawdzić, czy to ma sens. Niesamowite, jak rozumowanie listowe, uwielbiam zestawy do tego: unused=set(alphabet)-set(used)
zamiast robić unused = [a for a in aphabet if a not in used]
. Fajne rzeczy!
def get_used_drive_letters():
drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
letters = [d[0] for d in drives]
return letters
def get_unused_drive_letters():
alphabet = map(chr, range(ord('A'), ord('Z')+1))
used = get_used_drive_letters()
unused = list(set(alphabet)-set(used))
return unused
def get_highest_unused_drive_letter():
unused = get_unused_drive_letters()
highest = list(reversed(sorted(unused)))[0]
return highest
Jedna wkładka:
def get_drive():
highest = sorted(list(set(map(chr, range(ord('A'), ord('Z')+1))) -
set(win32api.GetLogicalDriveStrings().split(':\\\000')[:-1])))[-1]
Wybrałem również alfabetu, używając mapy/zakres/ord/chr nad użyciem ciąg od części łańcucha są przestarzałe.
fantastyczne. Pracował idealnie. –
Po prostu wypróbowałem to w wersji 2.6 i otrzymałem dodatkowy pusty ciąg na końcu. Nadal dobra odpowiedź. –
@ Mark: edytuj, aby naprawić – Claudiu