定义列表时有条件地将项目添加到列表?
作者:互联网
定义列表时,是否可以有条件地将项目添加到列表中?
这就是我的意思:
l = [
Obj(1),
Obj(2),
Separator() if USE_SEPARATORS,
Obj(3),
Obj(4),
Obj(5),
Separator() if USE_SEPARATORS,
Obj(6)
]
显然,上面的代码不起作用,但是有类似的方法吗?
目前我有
l = [item for item in (
Obj(1),
Obj(2),
Separator() if USE_SEPARATORS,
Obj(3),
Obj(4),
Obj(5),
Separator() if USE_SEPARATORS,
Obj(6)
) if not isinstance(item, Separator) or USE_SEPARATORS]
但是我想知道是否还有另一种方式不需要遍历列表,因为它们的长度可以是10000,并且当我执行代码时服务器会停止四分之一秒左右.
这是针对第一人称射击游戏的游戏,因此,四分之一秒实际上可能会对垂死或存活的人产生影响.
解决方法:
之后,我将其插入;列表毕竟是可变的:
l = [
HeadObj(1),
HeadObj(2),
BodyObj(1),
BodyObj(2),
BodyObj(3),
FooterObj(1)
]
if USE_SEPARATORS:
l.insert(2, Separator())
l.insert(6, Separator())
标签:python-3-x,list,python,list-comprehension 来源: https://codeday.me/bug/20191028/1953626.html