Python - 打印制表符分隔双字组

Eag*_*gle 4 python

我有一套这样的词:

mike dc car dc george dc jerry dc
Run Code Online (Sandbox Code Playgroud)

每个单词mike dc george dc都用空格分隔.如何创建双字组并用标签分隔双字组?我想将它打印到标准输出stdout.

编辑 我尝试使用这个: print '\t'.join(hypoth),但它并没有真正削减它.这里的所有单词都是以制表符分隔的.理想情况下,我希望前两个单词用空格分隔,每两个单词集制表符分隔.

Uli*_*ler 6

假设你有

two_word_sets = ["mike dc", "car dc", "george dc", "jerry dc"]
Run Code Online (Sandbox Code Playgroud)

使用

print "\t".join(two_word_sets)
Run Code Online (Sandbox Code Playgroud)

或者,对于Python 3:

print("\t".join(two_word_sets))
Run Code Online (Sandbox Code Playgroud)

将以制表符分隔的列表打印到stdout.

如果你只有

mystr = "mike dc car dc george dc jerry dc"
Run Code Online (Sandbox Code Playgroud)

你可以计算如下:

words = mystr.split()
two_word_sets = [" ".join(tup) for tup in zip(words[::2], words[1::2])]
Run Code Online (Sandbox Code Playgroud)

这可能看起来有点复杂,但请注意这zip(a_proto[::2], a_proto[1::2])只是[('mike', 'dc'), ('car', 'dc'), ('george', 'dc'), ('jerry', 'dc')].列表理解的其余部分将这些与空间结合在一起.

请注意,对于非常长的列表/输入字符串,您可以使用izip[ itertools],因为zip实际上会创建一个元组列表,而izip返回一个生成器.