为多级大纲生成标签

我需要生成一个多级增量标签
标签每个级别的字符串基于基于的概述/层次结构
诸如1、2、3或A,B,C或II,II,III之类的增量序列.
为简单起见,假设每个级别的标签段都被一个分开
时期 (".").
我会将整数级别(1 ... n)传递给此函数/对象,以便
当级别更改时,特定的计数器会重置.
我将使用此函数/对象生成输出,例如:
标签级别
I. 1
I.A. 2
i.b. 2
我知道了. 2
ID. 2
I.D.1. 3
I.D.2. 3
I.D.3. 3
IE. 2
ii. 1
是否有用于生成这样的标签序列的预制类?
(我不确定我将用作Google的搜索词
班级).
虽然这听起来像是一个简单/有趣的课,但我认为可以
当每个因素中的一个因素为每个因素中的一个因素
Level的标签类型,分离器和错误检查.如果有
现有的,经过道路测试的课程(带有单位测试)可以做到这一点,我会
而是避免重新发明/重新测试轮子.
谢谢,
马尔科姆

# 回答1


5月6日,4:43*pm,pyt ...@bdurham.com写道:
您已经在此处询问语法.
(模拟)
我.
I.A.
i.b.
我知道了.
ii.
我将实现对象(该术语是"生成器"),但是您有
要依靠两件事:我可以,我将检查新闻组(即银行
在别人的业余时间).邀请您与任何答复
所有的兴趣.就个人而言,报价到期,但我不是唯一的
用技巧. (敬请关注.)
(发电机的诀窍是" dis"发明车轮.)
提出的配方对您满意吗?
您是否愿意产生一系列标记,作为进一步的选择
跟随? (而不是重新连接的弦.)
(模拟)
( "我", )
("我"," a")
("我"," b")
( "我知道了" )
(" ii",)
在这一点上,我的提议不符合您的标准
的:
但是确实会逐步通过我的顺序.
(此外,我对显示信息的其他方式感兴趣
您正在大纲中介绍;随意对此进行头脑风暴
团体.)
库:Python允许您简单地加入字符串序列:
'i.a.1.iii'
但是自定义可以使返回成为多部位.是的,它是免费的,
你问什么.
该实施情况以两种方式之一,无论是否
您正在持有一系列可变的发电机(本身),或者只有一个
但是对于乞eg不能成为选择者,免费代码仅带有一个.
如果您想"返回并插入",则发电机是-wrong-
解决方案(道具检查).
# 回答2


'''
5月6日,下午4:43,pyt ...@bdurham.com荣誉:
( "我", )
("我"," a")
("我"," b")
( "我知道了" )
(" ii",)
'''
#Funny声明
上课(例外):通过
下班(例外):通过
def大纲():
stack = [1]
而1:
尝试:
产量堆栈
堆栈[-1]+= 1
除了:
stack.append(1)
除了下降:
stack.p OP(-1)
堆栈[-1]+= 1
a = utline()
打印A.Next()
打印A.Throw(向上)
打印A.Next()
打印A.Next()
打印A.Throw(向下)
打印A.Throw(向上)
打印A.Throw(向上)
打印A.Next()
打印A.Next()
打印A.Throw(向下)
##输出:
[1]
[1,1]
[1,2]
[1,3]
[2]
[2,1]
[2,1,1]
[2,1,2]
[2,1,3]
[2,2]
##
参见
formatter.nullformatter.format_counter
formatter.nullformatter.format_letter
formatter.nullformatter.format_roman
# 回答3


5月7日,9:07*上午,castiro ...@gmail.com写道:
( "我", )
("我"," a")
("我"," b")
( "我知道了" )
(" ii",)
'''
#Funny声明
上课(例外):通过
下班(例外):通过
def大纲():
* * stack = [1]
* *当1:
* * * * 尝试:
* * * * * *屈服堆栈
* * * * * * stack [-1]+= 1
* * * *除外:
* * * * * * stack.append(1)
* * * *除了下降:
* * * * * * stack.pop(-1)
* * * * * * stack [-1]+= 1
a = utline()
打印A.Next()
打印A.Throw(向上)
打印A.Next()
打印A.Next()
打印A.Throw(向下)
打印A.Throw(向上)
打印A.Throw(向上)
打印A.Next()
打印A.Next()
打印A.Throw(向下)
##输出:
[1]
[1,1]
[1,2]
[1,3]
[2]
[2,1]
[2,1,1]
[2,1,2]
[2,1,3]
[2,2]
##
参见
formatter.nullformatter.format_counter
formatter.nullformatter.format_letter
formatter.nullformatter.format_roman
内置的一个python 3a4的执行.
Python 3.0
Win32
键入"帮助"
<内置
您也想发送并投入吗?
# 回答4


Castironpi和Dennis,
哇!非常感谢您的例子!!!
我不是为自由开发而拖钓,只是这样的图书馆是否
存在和/或设计思想(基本对象或生成器).
我已经开始开发自己的解决方案,这更复杂
(回复:丑陋)比您的两种非常优雅的方法.
比较您的两种截然不同的方法很有趣.我会的
在选择决赛之前,花更多的时间研究您的技术
方法.
再次感谢.我通过学习您的python学习了很多
例子! :)
马尔科姆
# 回答5


Castironpi,
如果没有太多麻烦,我很想看看您如何添加这些问题.
我不确定您的意思是上述行... 引用formatter.py? http://www.koders.com/python/fid4b7c...33df2ca11.aspx
感谢您的帮助 - 我学到了很多!
马尔科姆
PS:"投掷(向上)" ...非常有趣! :)
# 回答6


丹尼斯,
谢谢!!
马尔科姆

标签: python

添加新评论