0

次のようなタプルのリストがあります。

[(1, u'Category'), (2, u'Item'), (3, u'SubItem'), (4, u'N/A'), (1, u'Features'), (2, u'Tool Baseline')]

各タプルの最初の要素に基づくインデントを使用してファイルに書き込みたい:

Category
    Item
         SubItem
            N/A
Features
    Tool Baseline

私はPythonが初めてで、これ以外の簡単な方法を探しています:

if tup[0] == 1
    file.write('\t')
    file.write(tup[1])

(これらのタプルは多層ツリーの一部であり、各番号はブランチを表します。)

4

2 に答える 2

1

Python はあなたが思っている以上に素晴らしいです:

file.write('\t' * tup[0])
file.write(tup[1])
于 2013-06-28T17:56:57.580 に答える
1

文字列を掛けることができます!以下に、タブ文字pair[0]*'\t'を示します。pair[0]

>>> x = [(1, u'Category'), (2, u'Item'), (3, u'SubItem'), (4, u'N/A'), (1, u'Features'), (2, u'Tool Baseline')]
>>> for pair in x:
...   print pair[0]*'\t' + pair[1]
...
    Category
            Item
                    SubItem
                            N/A
    Features
            Tool Baseline
>>>

印刷をファイル I/O 操作に置き換えるだけです。

file.write('\t'*tup[0])
file.write(tup[1])
于 2013-06-28T17:57:26.253 に答える