作为我的自动化项目的一部分,我需要一个小的python函数将逗号分隔的节点表达式转换为方括号格式的节点表达式,如:
输入:
kvm10,kvm11,kvm12,kvm13
输出:
kvm1[0-3]
答案 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
然后你可能必须首先获取列表中的所有数字,对其进行排序并逐个尝试制作序列。当某个号码跳过时,您输出一个输出。