Получить два списка из одного списка, используя понимание одной строки в Python - PullRequest
1 голос
/ 21 апреля 2020

У меня есть один список, содержащий значения True и False. Используя понимание списка, из этого списка я могу получить два отдельных списка, где один имеет только Истинные значения, а другой имеет только Ложные значения, как показано ниже:

aList  = [True, False, False, True, False, True, True]
trues  = [ x for x in aList if x==True ]
falses = [ x for x in aList if x==False ]

print(trues)  # [True, True, True, True]
print(falses) # [False, False, False]

Возможно ли получить два отдельных списка из одного списка, используя список в одной строке? Примерно так:

trues, falses = [ [a,b] for x in aList a=True if x else b=False]

Здесь я получаю сообщение об ошибке: «SyntaxError: неверный синтаксис» с упоминанием каретки чуть ниже «True» для a = True

1 Ответ

1 голос
/ 21 апреля 2020

Это примерно то же самое, что вы, но сжимаете в одну строку:

aList  = [True, False, False, True, False, True, True]
trues,falses  = [x for x in aList if x], [x for x in aList if not x]

Таким образом, вы получите два списка. Если вы заключите его в скобки, вы получите один список.

...