减少连接字符串数组?更快的解决方案?

时间:2019-11-24 11:31:54

标签: arrays swift string concatenation reduce

我使用这样的代码从字符串数组构建一个字符串:

class ActionCMD {   // "class" to avoid value copies when updating string members
    var cmds = [String]()   // simply the list of all strings to speed up inserting
    var cmd : String { return cmds.reduce("", +) }   // resulting string
}

但是对于35.000个字符串,它需要15分钟。有没有更好的(快速)方法来进行连接?

1 个答案:

答案 0 :(得分:2)

您应该避免创建中间字符串。而是使用以下任一方法来更改先前累积的字符串:

# Get the absolute path of this current test script
base_path, _ = os.path.split(os.path.abspath(__file__))
# Form the absolute path of the needed json
json_path = os.path.join(base_path, "../assertions/validator/validation_config.json")

with open(json_path) as inp:
    validation_config = json.load(inp)

或:

cmds.reduce(into: "", { $0 += $1 })

或简单地:

cmds.joined()

有关字符串串联here

的更多信息