python中的字符串替换-不支持%的操作数类型:';列表';和';str';

python中的字符串替换-不支持%的操作数类型:';列表';和';str';,python,substitution,string-substitution,Python,Substitution,String Substitution,我被一段简单的代码困住了,我确信这只是一个愚蠢的错误,我希望有人能向我指出。下面是我的代码: a = ['_a','_b','_c'] data_template = ['data%s'] for f in a: this_data = data_template % (f) print this_data 我只想把它打印出来 data_a data_b data_c 但我得到了以下错误: TypeError: unsupported operand type(s) for

我被一段简单的代码困住了,我确信这只是一个愚蠢的错误,我希望有人能向我指出。下面是我的代码:

a = ['_a','_b','_c']
data_template = ['data%s']
for f in a:
    this_data = data_template % (f)
    print this_data
我只想把它打印出来

data_a
data_b
data_c
但我得到了以下错误:

TypeError: unsupported operand type(s) for %: 'list' and 'str'

任何建议都将不胜感激

您需要为模板使用
字符串
data\u模板='data%s'


%
运算符在字符串上工作,而不是在列表上。

您不能将模板放在列表中,只需这样做即可

data_template = 'data%s'


你应该很好。

谢谢@plamut,我在发布它的那一刻就发现了这一点。错误的引号,应为:

data_template = ["data%s"] 
而不是

data_template = ['data%s']
注意:这也是错误的

应该是

data_template = "data%s"

FWIW,除了
%
操作符之外,您还可以查看[str.format](),它更强大,并且可以处理一些
%
操作符无法处理的事情。使用单引号或双引号都无所谓。。。除非你的意思是
data\u template='[data%s]'
?不,不,现在一切都好了,出于某种原因,我把
data\u%s
放入了一个列表中。现在解决了,谢谢你的帮助!实际上不需要传递元组
(f,)
,字符串
f
本身已经足够了。(编辑:指的是一条似乎已被删除的注释)这没有什么区别,Python对单引号和双引号的处理是一样的:是的,这是常有的事,不用担心。不管怎样,我想我们已经回答了你的问题?
data_template = "data%s"