创建一个字符串,其参数依赖于Python中的列表值

时间:2013-06-27 14:05:20

标签: python string-formatting

我是Python的新手,我想创建一个这样的字符串:

print("{} INNER JOIN {}".format(table1, table2))

问题是table1table2存储在列表tables_list = ['table1','table2']中,我不知道该列表中有多少值,所以如果我只有该列表中的一个项目,打印结果将是:

table1

没有加入。

我想我应该在tables_list上循环,但在这种情况下,我似乎无法弄清楚如何使用format。 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

您可以将join与切片结合使用。

" INNER JOIN ".join(tables_list[:2])

虽然看起来你正在尝试构建一个SQL查询,所以我警告你应该警惕滚动你自己的查询构建器。查看您使用的任何DB库的文档,以确保您不会重写他们已经为您做的事情。

答案 1 :(得分:1)

你可以这样做:

>>> tables_list = ['table1','table2']
>>> print("{} INNER JOIN {}".format(*tables_list))
table1 INNER JOIN table2

答案 2 :(得分:1)

看起来你正在编写SQL。为了帮助降低注入SQL的风险,大多数Python数据库库都提供了自己的字符串格式(a.k.a绑定变量)。在Python中使用绑定变量通常看起来像这样。

query_results = cursor.execute("?INNER JOIN ?", ("table1", "table2"))