我有以下列表:
[('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
我如何进行上述格式化?
答案 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))