如何识别字符串中的单个数字以插入前导零?

时间:2017-04-10 18:28:16

标签: python string python-2.7 split leading-zero

在Python中,我有一个两位数或一位数的字符串:

8 5E 9C 52 30 0

在字符串中的每一位数字中,我想为其添加一个前导零(例如,将5转换为05)并将其设为两位数。

考虑拆分.split(‘ ‘),逐个检查并将每个数字转换为两位数:.zfill(2)

所以我的问题是,有没有办法识别字符串中的所有单个数字,并通过插入前导零将它们全部转换为两位数?

4 个答案:

答案 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'

不要忘记导入当然