三元运算符python3.5的列表理解

2021-09-16 22:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为givenProductions的字符串列表。每个字符串都有一个大写字母和“-”,并且可以包含一个小写字母。你知道吗

示例:给定产品可以是['S-AA', 'A-a', 'A-b']

现在我要填两套:

  1. 终端(仅包含来自givenProductions的小写字母)和
  2. 非终结符(仅包含givenProductions中的大写字母)

就一行

我试过这个。。。你知道吗

terminals.append(ch) if (ch >= 'a' and ch <= 'z') else nonTerminals.append(ch) if (ch != '-') else print() for ch in prod for prod in givenProductions

导致了语法错误

File "<stdin>", line 2
    terminals.append(ch) if (ch >= 'a' and ch <= 'z') else nonTerminals.append(ch) if (ch != '-')   else print ('-') for ch in prod  for prod in givenProductions
                                                                                                                       ^
SyntaxError: invalid syntax

正确的写作方法是什么?你知道吗