python格式选项,带有保留额外值的条件

python格式选项,带有保留额外值的条件,python,Python,我必须用sqllite动态地创建一个表,其中colums=['col1,'col2','col3'] 因此,我使用: create_query = "create table if not exists myTable1 ({0})".format(" text,".join(columns)) print(create_query) 这很有效 但我必须为列表中的第三个条目(或列表中的第一个条目)保留“主键” CREATE TABLE test (col1 primary key ,col2,

我必须用sqllite动态地创建一个表,其中
colums=['col1,'col2','col3']
因此,我使用:

create_query = "create table if not exists myTable1 ({0})".format(" text,".join(columns))
print(create_query)
这很有效

但我必须为列表中的第三个条目(或列表中的第一个条目)保留“主键”

CREATE TABLE test (col1 primary key ,col2,col3);
我们是否可以使用任何条件选项。 基本上,我不想只是条目,但想添加主键也。
我尝试了不同的组合,但没有成功

好的,最好的方法是添加一个带有if条件的内联for循环,以循环遍历这些值。为此,我们可以添加一个变量
column\u no
,该变量将存储列值的索引以用作主键。 下面是生成的代码的样子:

columns = ['col1','col2','col3']
column_no = 0
create_query = "create table if not exists myTable1 ({0})".format(' text, '.join(val+(" primary key" if i==column_no else "") for (i, val) in enumerate(columns)))
print(create_query)

你的意思是,如果少于3个条目,将主键分配给第一列,如果多于3个条目,将主键分配给第三列吗?不,我想在列中添加我想要的内容。现在你可以选择第1列