0
我正在使用定义了枚举轨道的库(pymatgen)。每个元素可以被定义为一个OrbitalType。有几种口味的轨道类型,由字母s,p,d和f定义。以下代码正常工作。有条件的列表理解的语法错误
In [35]: myorbitals = []
In [36]: for orbital in Orbital:
....: if orbital.orbital_type == OrbitalType.d:
....: myorbitals.append(orbital)
....:
In [37]: myorbitals
Out[37]: [<Orbital.dxy: 4>, <Orbital.dyz: 5>,
<Orbital.dz2: 6>, <Orbital.dxz: 7>, <Orbital.dx2: 8>]
我的问题是,为什么我得到一个语法错误,当我试图做同样的事情来构建myarray
使用列表理解?
In [38]: myarray = [orbital if orbital.orbital_type == OrbitalType.d for orbital in Orbital]
File "<ipython-input-38-a770dfff8a02>", line 1
myarray = [orbital if orbital.orbital_type == OrbitalType.d for orbital in Orbital]
^
SyntaxError: invalid syntax