我正在编写一个 python 脚本,它将接受点分隔的版本号。它将把这个字符串分成单独的部分(使用句点(.
) 作为分隔符)。我的脚本最多支持 4 个组件(例如1.2.3.4
)。然而,用户可以指定less or more组件数量超过 4 个,我的脚本需要能够处理它。
如果少于 4,我从中返回的列表string.split()
需要将大小调整为 4 并且缺少初始化为字符串的组件"0"
。如果大于 4,则仅截断第四个组件之后的元素。
截断很简单,我只需拼接列表即可。但是,我不确定如何调整最多 4 个元素的大小。有没有一种Python式的方法可以做到这一点,或者我需要手写一堆逻辑来做到这一点?
我正在使用Python 3.2。
通常,您可以检查列表的长度,然后将缺少的列表添加回开头:
def pad_list(input_string, pad_length, pad_char='0'):
base_version = input_string.split('.')[:pad_length]
missing_entries = [pad_char] * pad_length - len(base_version)
return base_version + missing_entries
实际上,这里唯一的补充是实际检查您获得的部分列表的长度,然后创建另一个与缺失部分长度相同的列表。
或者,您可以提前添加 0,以防它太短:
(a + '.' + '.'.join(['0'] * 4)).split('.')[:4]
这里第二行背后的想法是预先向版本字符串添加零,这有效地消除了填充问题。
首先,我们添加'.' + '.'.join(['0']*4)
到字符串末尾a
,这增加了.0.0.0.0
到最后,这意味着无论字符串的其余部分有什么,实际上填充都在那里。
填充完成后,您可以像平常一样进行切片:.split('.')[:4]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)