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 回答