定义列表时有条件地将项目添加到列表?

马库斯·梅斯卡宁(Markus Meskanen)

定义列表时,是否可以有条件地将项目添加到列表中?这就是我的意思:

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,并且当我执行代码时服务器会停止四分之一秒左右。这是针对第一人称射击游戏的,因此四分之一秒实际上可能会对垂死或存活的人产生影响。

马丁·彼得斯(Martijn Pieters)

我只是将它们插入之后; 列表毕竟是可变的:

l = [
    HeadObj(1),
    HeadObj(2),
    BodyObj(1),
    BodyObj(2),
    BodyObj(3),
    FooterObj(1)
]
if USE_SEPARATORS:
    l.insert(2, Separator())
    l.insert(6, Separator())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用列表推导有条件地将 1 或 2 个项目添加到列表中

有条件地将选项添加到列表

如何有条件地将小部件添加到列表?

有条件地将命名元素添加到列表中

有条件地将列添加到数据框列表中

使用循环有条件地将“NA”行添加到数据帧列表中

有条件地将文件添加到C ++项目中的库

打字稿:有条件地将项目添加到对象

Scala:将项目添加到序列中或有条件地合并序列

如何有条件地将项目添加到 Firestore?

如何在实例化时有条件地将mixin添加到当前类中?

有条件地将列表中的项目附加到多个文档中

有效的方式来有条件地将项目添加到HashMap中

有条件地使用as3中的项目渲染器将图像添加到datagrid

有条件地添加到地图

有条件地附加到 Elixir 中的列表?

如何有条件地将“按钮”添加到“工具栏”“表单”“组件”?

有条件地将CircleMarkers添加到传单

使用jq有条件地将元素添加到json数组

如何有条件地将元素添加到 std::array - C++11

有条件地将12小时添加到列中

有条件地将列和值添加到Spark Rows

有条件地将字母添加到字符串

R - 如何有条件地将连续列添加到数据框?

有条件地将标签选项参数添加到select2

Spark:有条件地将列添加到数据框

有条件地将列添加到 dplyr R 中的 groupby

有条件地将JSF组件添加到翻译字符串中

使用Polymer将CSS类有条件地添加到元素