逗号分隔为方括号表达式节点python函数

时间:2016-02-21 14:46:18

标签: python

作为我的自动化项目的一部分,我需要一个小的python函数将逗号分隔的节点表达式转换为方括号格式的节点表达式,如:

输入:

kvm10,kvm11,kvm12,kvm13

输出:

kvm1[0-3]

1 个答案:

答案 0 :(得分:0)

您是否需要识别节点的名称,或者您有一定的规则?

如果规则是最后一位数字,并且一切都表现良好,您可以使用

node_list = split(expression,",")
node_name = node_list[0][:-1]
initial_node = node_list[0][-1]
final_node = node_list[-1][-1]
expression = node_name+"["+initial_node+":"+final_node+"]"

但是,如果你必须发现节点的名称,你可能应该创建一个只作为帮助者的函数:

def find_name(one_node,two_node):
    i = 0
    name = ""
    while i<len(one_node) and i<len(two_node) and one_node[i]==two_node[i]:
        name += one_node[i]
        I += 1
    return name

此外,您可以再次使用拆分并使用索引+ len(名称)在节点名称中查找数字的位置

最糟糕的情况是,如果您的序列中断,例如 m

节点1,节点3,节点4

然后你可能必须首先获取列表中的所有数字,对其进行排序并逐个尝试制作序列。当某个号码跳过时,您输出一个输出。