0

以下のような for ループから Python で多数の行が出力されます。

class Wordnet():

    def compose_line6(self, pointers, pointers_synset_type):    
        for A, B in zip(pointers, pointers_synset_type):
            self.line6 += 'http://www.example.org/lexicon#'+A+' http://www.monnetproject.eu/lemon#pos '+B+'\n'
        return self.line6

    def compose_line7(self, pointers, pointer_source_target):
        for A, B in zip(pointers, pointer_source_target):
            self.line7 += 'http://www.example.org/lexicon#'+A+' http://www.monnetproject.eu/lemon#source_target '+B+'\n'
        return self.line7

'\n' があるのは、for ループが大きなブロックに出力されるだけでなく、各ループの最後に空白行を追加するためです。このメソッドを使用して現時点でこれらを印刷します。

def compose_contents(self, line1, line2, line3, line4, line5, line6, line7):
    self.contents = '\n'.join([line1, line2, line3, line4, line5, line6, line7])
    return self.contents

印刷すると次のようになりself.contentsます。

http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#pos n
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#pos a
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#pos v
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#pos v
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#pos v

http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#source_target 0000
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#source_target 0401
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#source_target 0302
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#source_target 0203
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#source_target 0101

print() の途中で空白行を避けるにはどうすればよいですか?

編集:これらのメソッドはすべて for ループで呼び出されます。 def line_for_loop(self, file): for line in file: self.compose_line6(self.pointers, self.pointers_synset_type) .compose_contents(self.line1、self.line2、self.line3、self.line4、self.line5、self.line6、self.line7)

そしてプリントはprint wordnet.contents

4

1 に答える 1

2

空行を除外します。

def compose_contents(self, *lines):
    self.contents = '\n'.join([line for line in lines if line.strip()])
    return self.contents

*argsこれは、任意の位置引数構文を使用して、任意の数の入力行をサポートします。

于 2013-06-28T11:07:17.217 に答える