2

可能重复:
Python 连接字符串和列表

是否可以连接字符串和列表?

以下代码导致错误:TypeError: not enough arguments for format string

t = ["a", "b", "c"]
s = "%s.%s.%s" % t
4

4 回答 4

3

如果您将列表转换为这样的元组,这可能会起作用:

t = ["a", "b", "c"]
s = "%s.%s.%s" % tuple(t)

但是,python 字符串具有内置方法 .join,因此,如果您的列表增长,您可以像这样处理它:

'.'.join(t)

这就是“pythonic 方式”,您还应该避免将 + 运算符与字符串一起使用,始终使用 .join 和格式化字符串。这是因为 Python 字符串(和元组)不是可变对象,所以,当你在做

"abc" + "cde"

Python 必须分配新内存来存储新字符串。

我希望这解决了你的问题

于 2013-01-09T02:45:51.680 回答
0

如果我了解您要执行的操作,则该str.join方法将是解决方案:

'.'.join(t)
>>> "a.b.c"
于 2013-01-09T02:46:20.767 回答
0

如果你只是

t[0]+t[1]...+t?

于 2013-01-09T02:47:07.367 回答
0

您也可以使用新的字符串格式来做到这一点:

t = ["a", "b", "c"]
s = "{}.{}.{}".format(*t)
于 2013-01-09T02:49:51.707 回答