(x<y and [x] or [y])[0]
首先计算x<y,如果是True,即True and [x]为[x],[x] or [y]=[x],短路掉[y]
则[x][0]=x(输出列表的第一个元素);如果x<y是False,即False and [x]=False,短路掉直到or
False or [y]=[y],[y][0]=y。实现的功能是
x if x < y else y,即三元操作。
而(x < y and [x] or [y])[0]为何不采用x < y and x or y是因为如果x=0,y>0时,x < y and x =0,
而使之执行or操作,3结果为y,使结果出错,故而采用列表的形式。