我有一组这样的词:
mike dc car dc george dc jerry dc
每个单词mike dc george dc
由空格分隔。如何创建双字组并用标签分隔双字组?我想将其打印到标准输出stdout
。
修改
我试过用这个:
print '\t'.join(hypoth)
,但它并没有真正削减它。这里的所有单词都是以制表符分隔的。理想情况下,我希望前两个单词用空格分隔,每两个单词集制表符分隔。
答案 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