生成元组列表的字符串表示

时间:2015-04-20 22:29:38

标签: python

我有一个表格

的元组列表
[("very", "ADJ"), ("slow", "ADJ"), ("programmer", "NOUN")]

我想要的输出是单个字符串:

"very/ADJ slow/ADJ programmer/NOUN" 

这是python,我知道我可以使用format()join()方法在单行中执行此操作,但我无法使语法完全正确。我最近的尝试是:

output_string = " ".join(["{0}/{1}".format(x) for x in list_of_tuples])

投掷Index Error: tuple index out of range"

3 个答案:

答案 0 :(得分:2)

您希望format(*x)以便将x元组扩展为参数。否则,您试图使用单个参数调用format,该参数本身就是一个元组。

那就是说,如果你知道这些都是2元组,我会选择更简单的方法:

output_string = " ".join(a + "/" + b for a, b in list_of_tuples)

另请注意,无需使用列表推导传递到join - 只需使用generator comprehension

答案 1 :(得分:1)

words = [("very", "ADJ"), ("slow", "ADJ"), ("programmer", "NOUN")]
' '.join('/'.join((x,y)) for x,y in words)

答案 2 :(得分:0)

您也可以使用map

>>> ' '.join(map(lambda t: '{}/{}'.format(*t), li))
'very/ADJ slow/ADJ programmer/NOUN'

而且,没有lambda的相同方法:

>>> ' '.join(map('/'.join, li))
'very/ADJ slow/ADJ programmer/NOUN'

即使你的元组中有两个以上的元素,哪个也有效。