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

时间:2014-01-27 01:59:16

标签: python

我有一组这样的词:

mike dc car dc george dc jerry dc

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

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

2 个答案:

答案 0 :(得分:6)

假设你有

two_word_sets = ["mike dc", "car dc", "george dc", "jerry dc"]

使用

print "\t".join(two_word_sets)

或者,对于Python 3:

print("\t".join(two_word_sets))

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

如果你只有

mystr = "mike dc car dc george dc jerry dc"

你可以按如下方式计算:

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

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

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

答案 1 :(得分:2)

您可以在1-2行中执行此操作,但如果您将其分解,则最容易阅读:

words = "mike dc car dc george dc jerry dc"
wlist = words.split()
mystr = ""
for i in range(0, len(wlist), 2):
    mystr = "%s%s %s\t" % (mystr, wlist[i], wlist[i+1])
print mystr