映射和加入python列表

时间:2014-01-03 21:30:54

标签: python

我想将每个字符串包装在花括号中的可变长度列表中,并用逗号连接它们。我现在有这个:

myList   = [ 'foo', 'bar', 'baz' ]
myString = ','.join( map( lambda s: "{{{0}}}".format(s), myList ) )
print myString
# {foo},{bar},{baz}

Python永远不应该那么难看!是否有更简洁的方法来实现这一目标?

4 个答案:

答案 0 :(得分:5)

您还可以提供以下内容。对我来说感觉有点自然。

",".join(["{" + e + "}" for e in myList]) 

或xbello建议,

",".join(["{%s}" % e for e in myList])

答案 1 :(得分:3)

你可以尝试:

>>> '{' + '},{'.join(myList) + '}'
'{foo},{bar},{baz}'

答案 2 :(得分:3)

我个人喜欢你的开始。您可以稍微缩短字符串格式:

In [2]: ','.join(map(lambda s:'{%s}'%s, myList))
Out[2]: '{foo},{bar},{baz}'

或(我觉得可读性稍差)

In [3]: ('{%s},' * len(myList))[:-1] % tuple(myList)
Out[3]: '{foo},{bar},{baz}'

答案 3 :(得分:1)

有点偏离墙的方法:

>>> myList   = [ 'foo', 'bar', 'baz' ]
>>> re.sub("'(.*?)'", r"{\1}",repr(myList))[1:-1]
'{foo}, {bar}, {baz}'