在Python中,我有一个两位数或一位数的字符串:
8 5E 9C 52 30 0
在字符串中的每一位数字中,我想为其添加一个前导零(例如,将5
转换为05
)并将其设为两位数。
考虑拆分.split(‘ ‘)
,逐个检查并将每个数字转换为两位数:.zfill(2)
。
所以我的问题是,有没有办法识别字符串中的所有单个数字,并通过插入前导零将它们全部转换为两位数?
答案 0 :(得分:7)
关于zfill(..)
的好处是,如果内容包含两个字符,那么该字符串保持不变。所以你可以简单地使用生成器(或列表推导)和' '.join(..)
结果:
result = ' '.join(x.zfill(2) for x in data.split())
生成:
>>> data = '8 5E 9C 52 30 0'
>>> ' '.join(x.zfill(2) for x in data.split())
'08 5E 9C 52 30 00'
答案 1 :(得分:3)
具有列表理解的简单解决方案。
<强>代码:强>
def pad_hex_str(hex):
return ' '.join(['0' + h if len(h) == 1 else h for h in hex.split()])
测试代码:
hex_str = '8 5E 9C 52 30 0'
print(pad_hex_str(hex_str))
<强>结果:强>
08 5E 9C 52 30 00
答案 2 :(得分:0)
<script type="text/JavaScript" language="JavaScript" src="${pageContext.request.contextPath}/js/jquery-2.1.4.min.js"></script>
jQuery. noConflict();
jQuery("#btConfirma").on("click", function(e) {
e.preventDefault();
var value1 = jQuery("#novoPlastico").val();
var value2 = jQuery("#grupoAfinidade").val();
window.location.href = ctx + "/parametros/migrCanais.do?plastNovo=" + value1 + "&grp=" + value2;
});
<a id="btConfirma" class="bt" href="#"><span>Confirmar migração de canais de venda</span></a>
并使用split
可以正常使用。
zfill
答案 3 :(得分:0)
>>> re.sub(r'(\b\d\b)', r'0\1', string)
>>> '08 5E 9C 52 30 00'
不要忘记导入当然