将%r与元组一起使用时出错

时间:2012-11-10 03:52:17

标签: python

我正在尝试通过插入元组来创建一个字符串。我想把'k = as.numeric(list(1, 2, 3))'作为我的输出:

j = (1, 2, 3)
'k = as.numeric(list%r)' % j

返回

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting

有人可以解释一下这里出了什么问题吗?感谢。

2 个答案:

答案 0 :(得分:5)

如果给%一个元组,它假定您要使用元组的元素作为要格式化的项,即使格式字符串只包含一个占位符。解决方案是将元组包装成一个元组:

'...%r...' % (j,)

答案 1 :(得分:2)

它试图以字符串格式分别使用j中的所有3个项目。单独处理j

'k = as.numeric(list%r)' % (j,)