Изменить список-понимание, включив два условия - PullRequest
0 голосов
/ 07 июня 2019

У меня есть этот кусок строки: У меня есть список подсписка, где я хочу извлечь для каждого сублипа элемент с индексом -1 (последний элемент), как я могу добавить следующее условие:

если index [-1] == "" взять индекс [0] и если index [-1] не пуст, принять -1, как я могу изменить то, что у меня ниже:

list = [[w.split('\t')[-1] for w in subl]for subl in list_general]

вот список генеральных

[['ça\tPRO:DEM\tcela', 'tout\tADV\ttout', 'médecins\tNOM\tmédecin', 'sauf\tPRP\tsauf', 'éventuellement\tADV\téventuellement', 'télétransmission\tNOM\ttélétransmission'], ['de\tPRP\tde', 'plus\tADV\tplus', 'plus\tADV\tplus', 'collègues\tNOM\tcollègue', 'disent\tVER:pres\tdire', 'va\tVER:pres\taller', 'disparaitre\tVER:infi\tdisparaître', 'profit\tNOM\tprofit'], ['apportée\tVER:pper\tapporter', 'cardiologue\tNOM\tcardiologue', 'les\tDET:ART\tle', 'outilis\tNOM\toutilis', 'dont\tPRO:REL\tdont', 'dispose\tVER:pres\tdisposer', 'avis\tNOM\tavis', 'limitée\tVER:pper\tlimiter'], ['pour\tPRP\tpour', 'suivi\tNOM\tsuivi', 'patients\tADJ\tpatient', 'pense\tVER:pres\tpenser', 'grand\tADJ\tgrand', 'part\tNOM\tpart', 'les\tDET:ART\tle', 'patients\tNOM\tpatient', 'peuvent\tVER:pres\tpouvoir', 'avoir\tVER:infi\tavoir', 'rdv\tNOM\trdv', 'rapidement\tADV\trapidement']]

1 Ответ

0 голосов
/ 07 июня 2019

Взяв этот более короткий образец:

arr = [["a\tb", "c\td", "e"], ["f"]]

, вы можете настроить понимание списка следующим образом:

out = [[w.split('\t')[-1] if len(w.split('\t')) > 1 else w.split('\t')[0] for w in subl] for subl in arr]

В пределахдля понимания я добавил проверку длины: len(w.split('\t')).Если длина больше 1, последний аргумент принимается, в противном случае первый (и единственный) аргумент.

Кроме того, не используйте 'list' в качестве переменной, поскольку это уже команда в python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...