Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列表中存储的字符串中插入200个变量_Python_Python 3.x_Python 3.5 - Fatal编程技术网

Python 在列表中存储的字符串中插入200个变量

Python 在列表中存储的字符串中插入200个变量,python,python-3.x,python-3.5,Python,Python 3.x,Python 3.5,我有一个变量列表,如下所示: listV = ['v1, 'v2', ...,'v200'] 我想以一种更干净的方式做以下事情: q1 = 'insert into myTable ({}, {}, {},....{})'.format(listV) 我期望的输出是: q1 = 'insert into myTable (v1, v2, v3, ...., v200)' 对于较少数量的变量,我能够编写更干净的代码,但对于200个变量,我很难创建更干净的代码 我需要随着listV内容的变化动

我有一个变量列表,如下所示:

listV = ['v1, 'v2', ...,'v200']
我想以一种更干净的方式做以下事情:

q1 = 'insert into myTable ({}, {}, {},....{})'.format(listV)
我期望的输出是:

q1 = 'insert into myTable (v1, v2, v3, ...., v200)'
对于较少数量的变量,我能够编写更干净的代码,但对于200个变量,我很难创建更干净的代码


我需要随着listV内容的变化动态创建q1,但listV的长度保持不变。

为了省事,您也可以通过编程创建格式字符串

listV=[V1、V2、V3] n=lenlistV fstring=插入myTable+{},*n-1+{} q1=fstring.format*listV *将listV中的项解压为单独的参数 printq1 >>>插入myTable V1、V2、V3
为了避免一些麻烦,您也可以通过编程方式创建格式字符串

listV=[V1、V2、V3] n=lenlistV fstring=插入myTable+{},*n-1+{} q1=fstring.format*listV *将listV中的项解压为单独的参数 printq1 >>>插入myTable V1、V2、V3 >>>listV=['v1','v2','v200'] >>>q1='插入myTable' >>>q1=q1+''+','.joinlistV+ >>>q1 '插入myTable v1、v2、v200' >>>listV=['v1','v2','v200'] >>>q1='插入myTable' >>>q1=q1+''+','.joinlistV+ >>>q1 '插入myTable v1、v2、v200'
这就是我能想到的

my_list = [1,2,3]
q = "insert into mytable ("
for i in range(0, len(my_list), 1):
    currNum = my_list[i]
    if i != len(my_list) - 1:
        q += str(currNum) + ","
    else:
        q += str(currNum)
q += ")"
print(q)

我是Python新手--

这是我能想到的

my_list = [1,2,3]
q = "insert into mytable ("
for i in range(0, len(my_list), 1):
    currNum = my_list[i]
    if i != len(my_list) - 1:
        q += str(currNum) + ","
    else:
        q += str(currNum)
q += ")"
print(q)
listV = [i for i in range(200)]
q1 = str("insert into myTable (" + "{}, "*(len(listV)-1) + "{})").format(*listV)
我是Python新手-_-

listV = [i for i in range(200)]
q1 = str("insert into myTable (" + "{}, "*(len(listV)-1) + "{})").format(*listV)
正如其他人提到的,字符串格式化sql查询会使数据库容易受到sql注入的攻击

编辑 奥尔文·罗赫特有一个很好的答案!下面是一个也适用于整数的替代版本:

listV = [i for i in range(200)]
q1 = "insert into myTable ({})".format(str(listV)[1:-1])
正如其他人提到的,字符串格式化sql查询会使数据库容易受到sql注入的攻击

编辑 奥尔文·罗赫特有一个很好的答案!下面是一个也适用于整数的替代版本:

listV = [i for i in range(200)]
q1 = "insert into myTable ({})".format(str(listV)[1:-1])

“,”joinlistV…强制性的。如果我猜对了,您正在尝试构造一个SQL查询。如果是,请确认。如果没有,则忽略此注释。这看起来像是一张照片。您似乎在寻找直接/原始格式,但有更好、更简单、更安全的方法来构造SQL查询。“,”。joinlistV…必须。如果我猜对了,您正在尝试构造一个SQL查询。如果是,请确认。如果没有,则忽略此注释。这看起来像是一张照片。您似乎在寻找直接/原始格式,但有更好、更简单、更安全的方法来构造SQL查询。或者只在结果字符串中调用format。format*listVor只在结果字符串中调用format。format*listV