У меня есть этот код:Очистка вложенным для петель питона
def GetSteamAccts(): #Get list of steam logins on this computer.
templist = []
Steamapp_Folders = ["C:\\Program Files (x86)\\Steam\\steamapps\\", "C:\\Program Files\\Steam\\steamapps\\"] #Check both of these directories.
for SF_i in range(len(Steamapp_Folders)):
if os.path.exists(Steamapp_Folders[SF_i]): #If the directory even exists...
Steam_AppDir_Items = os.listdir(Steamapp_Folders[SF_i]) #List items under steam install directory.
for S_AD_i in range(len(Steam_AppDir_Items)): #Make sure the user doesn't have any files in here...
if os.path.isdir(Steamapp_Folders + Steam_AppDir_Items[S_AD_i]): #If our path is a directory...
templist.append(Steam_AppDir_Items[S_AD_i]) #Add it to our list of logins.
#(If some idiot puts extra folders in here,
#it's their own damn fault when it shows on the list.)
return templist #Return a (not so) properly filtered list of steam logins.
Моя проблема, это выглядит некрасиво УЖАСНО мне. Я составил список из двух путей (только один из них будет когда-либо существовать), перейдя по этим путям, затем мне нужно получить список элементов в этих путях, а затем пройти их и отфильтровать из него не каталоги, чтобы получить псевдо-список паровых логинов на компьютере пользователя. (В основном просто получить список любых существующих каталогов (только каталогов!) По любому из этих двух путей)
Есть ли более короткий способ сделать это (кроме конденсации для петель в одну строку?)?
Я бы предпочел дать англоязычное решение, чтобы я мог собрать его вместе; а не кода. Это единственный способ, которым я действительно научусь правильно. Даже приятный маленький намек или выдержка, чтобы я мог понять это сам по себе, было бы неплохо.
И: Есть ли списки в течение петли всегда должны быть пройдена как:
for x in range(len(somelist)):
или есть что-то короче, чем при использовании диапазона (Len (
Почему вы не используете определение функций, чтобы упростить это? –
Возможно, именно поэтому я задал вопросы, так как я начинаю ... – ThantiK