元组转换为字符串

时间:2012-09-18 21:22:26

标签: python

我有以下列表:

[('Steve Buscemi', 'Mr. Pink'), ('Chris Penn', 'Nice Guy Eddie'), ...]

我需要将其转换为以下格式的字符串:

"(Steve Buscemi, Mr. Pink), (Chris Penn, Nice Guy Eddit), ..."

我试过

str = ', '.join(item for item in items)

但遇到以下错误:

TypeError: sequence item 0: expected string, tuple found

我如何进行上述格式化?

5 个答案:

答案 0 :(得分:11)

', '.join('(' + ', '.join(i) + ')' for i in L)

输出:

'(Steve Buscemi, Mr. Pink), (Chris Penn, Nice Guy Eddie)'

答案 1 :(得分:5)

你很亲密。

str = '(' + '), ('.join(', '.join(names) for names in items) + ')'

输出:

'(Steve Buscemi, Mr. Pink), (Chris Penn, Nice Guy Eddie)'

分解:外部括号分别添加,而内部括号由第一个'), ('.join生成。括号内的名称列表是使用单独的', '.join创建的。

答案 2 :(得分:3)

s = ', '.join( '(%s)'%(', '.join(item)) for item in items )

答案 3 :(得分:1)

您可以简单地使用:

print str(items)[1:-1].replace("'", '') #Removes all apostrophes in the string

您想要省略列表中方括号的第一个和最后一个字符。正如许多评论中所提到的,这会在字符串周围留下单引号。您可以使用replace删除它们。

NB 正如@ovgolovin所说,这将删除所有撇号,即使是名称中的撇号

答案 4 :(得分:0)

你很亲密......

print ",".join(str(i) for i in items)

print str(items)[1:-1]

print ",".join(map(str,items))