python 如何把整数转成列表

python 如何把整数转成列表

作者:Elara发布时间:2026-01-07阅读时长:0 分钟阅读次数:43

用户关注问题

Q
如何将整数中的每一位数字提取出来并存储在列表中?

我有一个整数,想要将它的每个数字单独提取出来,放入一个列表中,应该使用什么方法?

A

使用字符串转换和列表推导式提取数字

可以先将整数转换成字符串,然后通过遍历字符串,将每个字符转换回整数,最后生成包含数字的列表。例如:

num = 12345
num_list = [int(digit) for digit in str(num)]
print(num_list)  # 输出: [1, 2, 3, 4, 5]
Q
有没有不通过字符串转换来实现整数转列表的方法?

我想避免先把整数转换为字符串,是否有其他办法直接从整数中提取数字并放进列表?

A

通过数学运算提取数字

可以使用除法和取模运算从整数中逐个提取数字。例如,通过不断对10取模得到最低位数字,然后除以10去除最低位,反复操作直到数字为0。最后将数字逆序存入列表。示例代码:

def int_to_list(num):
    digits = []
    while num > 0:
        digits.append(num % 10)
        num //= 10
    return digits[::-1]  # 反转列表得到正确顺序

print(int_to_list(12345))  # 输出: [1, 2, 3, 4, 5]
Q
如何处理整数为0或负数的情况,将其转换成列表?

如果输入的整数是0或者负数,转换成列表应该如何处理才能保证结果正确?

A

针对0和负数的特别处理

整数0可以直接转换为列表[0]。对于负数,可以先取其绝对值转换成列表,之后根据需要可以保留符号信息。示例:

def int_to_list(num):
    if num == 0:
        return [0]
    sign = -1 if num < 0 else 1
    num = abs(num)
    digits = [int(d) for d in str(num)]
    return digits  # 负号可以通过另一个变量记录

print(int_to_list(0))     # 输出: [0]
print(int_to_list(-123))  # 输出: [1, 2, 3]