python 把list加入list,然后靠列表推导式读值出问题

如题,我有一个函数会生成list[a,b],我将它加入进nlist

nlist.append(list)

得到的就是

[[a,b],[a,b],[a,b],[a,b]....]

我想要读取每个list里的a,所以我写了一个列表推导式

alist=[x[0] for x in nlist]

然后问题来了,函数生成的list可能是空的,于是导出list[],这样一来我写的这个列表推导式就会报错。
有没有什么办法解决。

alist=[x[0] for x in nlist if x]

判断当X存在时才取x【0】


nlist=[]
nlist.append(["a","b"])
nlist.append([])
alist=[x[0] if x else None  for x in nlist]
print(alist)

img

有两个方法可以解决:
1.可以在前面加个判断nlist是否为空,不为空则执行列表推导式

if nlist:
  alist=[x[0] for x in nlist]

2.可以直接在列表推导式的最后面加个判断x列表是否存在

alist=[x[0] for x in nlist if x]

img