python大的字符串怎么办比较好一点

python大的字符串怎么处理比较好一点?
我这里有个sql 语句 一次批量插入比较快

但是 python貌似没有Java 中的   string buffer这个玩意啊  字符串都是不可修改的 每次返还一个新的给我

现在我手头 有200个  字符串  每个都很长

insert to XX values(字符串1),(字符串2),(字符串3).......(字符串200)  这样语句就会很长

我不太清楚python具体机制,但是貌似是把字符串存到一个池中

问题:
1.我的200个字符串  计算出来之后,该怎么保存? 200个string吗?
2.保存之后怎么拼接成sql?   用 %   还是 join   还是循环 +=

我又想速度快  又想占用内存少   有没有办法啊
------解决思路----------------------
1、好像没见过好的方案,静等大神回复;
2、能用join绝对不用+=,这是原则,前者实际快很多很多。

------解决思路----------------------
首先, 出于安全原因, 不要自己攒出sql命令, 而是要用数据库模块提供的参数替换功能.

python sqlite3文档中的例子:


# Never do this -- insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

# Do this instead
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print c.fetchone()

# Larger example that inserts many records at a time
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
             ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
             ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
            ]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)


所以就你的情况来讲, 把所有参数的之放到一个列表中, 再准备一个命令模板, 一起传给execute函数.


In [1]: parameter_list = ','.join(['?']*200) # 200个占位符

In [2]: statement_tmpl = 'insert to XX values (' + parameter_list + ')'  # 这儿攒的是模板, 不含有实际要插入的值

In [3]: parameters = [str(i) for i in range(200)]

In [4]: cur.execute(statement_tmpl, parameters)