将for循环中的字符串连接到一行

时间:2016-06-05 03:07:40

标签: python python-2.7 for-loop nltk

我有一个产生nltk块的语法标签,

    sent_text = nltk.sent_tokenize(text) # this gives us a list of sentences
    # now loop over each sentence and tokenize it separately
    for sentence in sent_text:
          tokenized_text = nltk.word_tokenize(sentence)
          tagged = nltk.pos_tag(tokenized_text) 
          for word, tag in tagged:
               print(tag)

这给了我以下输出,

    DT
    JJ
    NN
    NN
    VBD
    IN
    DT
    JJ
    NN

但是,我希望输出像

一样单行
    DT JJ NN NN VBD IN DT JJ NN      

我该怎么做?

5 个答案:

答案 0 :(得分:1)

如果您不想只打印,而是将结果存储在字符串中,则可以使用str.join()和一个list comprehension

tags = [tag 
        for sentence in sent_text 
        for _, tag in nltk.pos_tag(nltk.word_tokenize(sentence))]
result = " ".join(tags)
print(result)

请注意,_是一次性变量的通用变量名称。

答案 1 :(得分:1)

这样做

foreach($all_venue_listings as $key => $v) {
...
$all_venue_listings[$key] = ...

这应留下空间而不是下一行。

答案 2 :(得分:1)

我不认为你最终要打印整个字符串并继续使用typedef struct union util; typedef struct graph Graph; typedef struct vertex_struct Vertex; typedef struct arc_struct Arc; typedef struct graph{ Vertex * vertices; } Graph; typedef struct vertex_struct { struct arc_struct * arcs; int name; struct util u, v, w, x, y, z; }; typedef struct arc_struct { struct vertex_struct * tip; struct arc_struct * next; struct util a, b; }; struct union { struct vertex_struct * V; struct arc_struct * A; struct graph_struct * G; char * S; int I; }; 所以将它分配给新变量将在下面解释。 在顶部初始化变量tag_str并在print语句之后使用它。

print(tag, end = ' ')

答案 3 :(得分:1)

如果您没有使用Python 3,则可以直接写入sys.stdout,这样您就可以跳过换行符。

答案 4 :(得分:1)

如果您使用的是python 2.x. 使用print(tag,),将输出放在同一行。所以你可以使用print (tag + ' ',)

如果您使用的是python 3 使用print(tag, end="")print(tag, end=" ")取决于您是否需要空格。