一种更简化,更有效的拆分列表方式

时间:2019-06-08 23:37:34

标签: python python-3.x split

有没有更快,更有效的方法来拆分列表中的行。我当前的设置并不慢,但是要比拆分整个列表花费的时间更长,这可能是由于遍历整个列表需要进行多次迭代所致。

我目前有以下代码

// remember that you set state "base" and "height" from your handleChange method.
const { base, height } = this.state;

if(base > 0 && height > 0) {
  this.setState ({
    // you probably only want to calculate area, so you can leave base and height as it is.
    area: (base*height)/2
  })
}
...

我只是想要一种在最快但有效的时间内完成上述操作的方法

1 个答案:

答案 0 :(得分:2)

如果loaded_listloaded_email_list都是常规列表,这是有效的方法(可能需要对Pandas所使用的内容稍加修改):

loaded_email_list += [x.partition(':')[0] for x in loaded_list]

为什么这样更好:

  • 直接迭代列表,而不使用rangelen和索引变量
  • 它使用partition来停止查找第一个:,而不是split来遍历整个字符串
  • 它使用列表理解功能一次创建所有新列表,而不是创建和连接一堆单元素列表
  • 它使用x += y而不是x = x + y,如果它的__iadd__比将其__add__的结果分配回给自己更有效,那么从理论上讲它可以更快。