You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:将列表中的数字拆分为单个数字的技术问题

解决数字列表拆分单个数字的问题

我明白你现在的困扰啦——想把列表里的每个数字拆成单个数字,但之前的方法都没达到预期,还搞不懂列表推导式对吧?我一步步给你讲清楚~

先说说你之前方法为啥没生效

  • 用list(str(number))的时候,你是把整个列表转成了字符串(比如str(number)会得到"[6, 18, 6, 4, 12, 18, 0, 18]"),所以拆分出来的会包含方括号、逗号、空格这些符号,自然不是你要的单个数字。
  • split()方法是针对字符串按指定分隔符拆分的,你直接用在列表上会报错;就算把列表转成字符串再用split(','),也只能得到每个数字的字符串形式(比如["6", " 18", " 6"...]),还是没拆分单个数字。

分步实现的方法(容易理解)

我们可以分两步走:先遍历原列表里的每个数字,再把每个数字拆成单个字符转成整数,最后收集所有结果。

代码示例:

numbers = [6, 18, 6, 4, 12, 18, 0, 18]
result = []

# 遍历原列表中的每个数字
for num in numbers:
    # 把数字转成字符串,这样就能逐个访问每个数字字符了
    num_str = str(num)
    # 遍历字符串里的每个字符,转成整数后加入结果列表
    for char in num_str:
        result.append(int(char))

print(result)
# 输出结果:[6, 1, 8, 6, 4, 1, 2, 1, 8, 0, 1, 8]

简化的列表推导式写法

上面的循环可以简化成一行列表推导式,其实就是把嵌套循环“压缩”了,我给你拆解一下:

numbers = [6, 18, 6, 4, 12, 18, 0, 18]
result = [int(char) for num in numbers for char in str(num)]

拆解这个推导式的逻辑:

  1. for num in numbers:先遍历原列表里的每一个数字
  2. for char in str(num):把当前数字转成字符串,遍历它的每一个字符
  3. int(char):把每个字符转回整数
  4. 所有这些整数会自动组成一个新列表,就是你要的结果

这样是不是就明白列表推导式的逻辑啦?其实就是把嵌套循环的顺序反过来写,最后放要生成的元素就行。

内容的提问来源于stack exchange,提问作者Erich Purpur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:12:16