我正在尝试优化这里的代码。你知道吗
if ns=='8':
for i in nodes:
if '02' == i[-2:]:
d[i]='quorum-manager'
if '05' == i[-2:]:
d[i]='quorum-manager'
if '06' == i[-2:]:
d[i]='quorum-manager'
if '09' == i[-2:]:
d[i]='quorum-manager'
上面,i
是一个节点名列表,例如:
i = ['xyz01', 'xyz02', 'xyz03', ...]
如果节点以02
或05
或06
或09
结尾,我继续替换这些特定节点名称的字典值。你知道吗
有没有可能有这样的东西:
如果节点名以02
或05
或06
或09
结尾,则一次替换字典中的重复值,而不是在每行中比较然后替换
如果有
i[-2:]
可能是的字符串列表,只需使用in
运算符:您应该在集合中查找
i
的最后一部分:在一个列表中反复搜索(就像在其他答案中一样)是很慢的,而且通常是不好的实践。python2.7及更高版本支持大括号表示法
{...}
;您还可以定义这样的集合:set(["02","05","06","09"])
。如果你经常这样做,你可以事先做一组等价的选项,然后重复使用它们。你知道吗更一般的建议:如果您有许多导致相同操作的不相关的测试,您应该编写一个
if
,其中有几个与or
相关的测试。你知道吗相关问题 更多 >
编程相关推荐