Понимание списка Python — сравните 3 списка

#python #python-3.x #list #list-comprehension #ifs

Вопрос:

Я новичок в понимании списков. В настоящее время я понимаю это при сравнении двух списков, но теперь, когда я сравниваю 3, я немного сбит с толку. В принципе, у меня есть этот список:

teams= ['subteamA', 'subteamB'] эти 2 команды сравниваются с файлом csv, который в основном просто чередуется между подгруппами и подгруппами. Мое понимание списка таково:

teamDimensions_semantic = [[ 1 if paramTeam == thisTeam else 0 for paramTeam in mySubteams] for thisTeam in teams]

print(teamDimensions_semantic)

и тогда на выходе получается что-то вроде [1,0,1,0,1,0], что работает.

Мой вопрос теперь в том, как мне сделать то же самое, но с 3 командами в списке понимания? Я изменил свои команды на teams= [subteamA, subteamB, subteamC] «сейчас» и изменил csv-файл, чтобы отразить и это. Но теперь я хочу, чтобы мой teamDimensions_semantic выглядел примерно так [1,0,2,1,0,2,1,0,2].

Как мне теперь написать это в строках понимания списка? Я застрял на «если» и «еще»….. любая помощь будет признательна!

Ответ №1:

Не используйте понимание вложенных списков с if помощью . Используйте index() , чтобы получить позицию в teams списке.

 teamDimensions_semantic = [teams.index(s) for s in mySubteams]