我有一个表格
的元组列表[("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"
答案 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'
即使你的元组中有两个以上的元素,哪个也有效。