如何将整数输入从右侧开始拆分为两位一组的块
从右侧开始将整数拆分为两位一组的方法
这里提供两种简单的实现方式,解决你从右侧拆分整数的需求:
方法一:字符串反转法
利用字符串反转,先从原数字的右侧开始分割,再恢复顺序:
def split_from_right(num): # 将数字转为字符串并反转,方便从原右侧开始分割 reversed_str = str(num)[::-1] # 按两位一组分割反转后的字符串 split_parts = [reversed_str[i:i+2] for i in range(0, len(reversed_str), 2)] # 每个部分反转回原顺序并转为整数,最后整体反转恢复正确排列 return [int(part[::-1]) for part in split_parts][::-1] # 测试示例 print(split_from_right(12463)) # 输出: [1, 24, 63]
方法二:数学运算(更高效)
通过取余和整除操作,直接从右侧提取两位数字:
def split_from_right(num): chunks = [] while num > 0: # 提取最后两位数字 chunks.append(num % 100) # 移除最后两位数字 num = num // 100 # 反转列表,恢复从左到右的顺序 return chunks[::-1] # 测试示例 print(split_from_right(12463)) # 输出: [1, 24, 63]
原理说明
- 字符串反转法:先反转数字字符串,让原右侧的数字变成左侧,此时按两位分割就相当于从原数字右侧开始分组,最后再反转每个分组和整个列表,得到正确顺序。
- 数学运算:
num % 100能直接获取最后两位数字,num // 100则去掉最后两位,循环直到数字为0,最后反转列表即可得到从左到右的分组结果。
内容的提问来源于stack exchange,提问作者OCOVALOCO
相关产品推荐
相关产品推荐

