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

Python列表切片赋值字符串为何拆分为字符列表?

列表切片赋值的这个行为,本质是Python迭代特性在起作用

先看你给出的代码:

L = []
L[0:] = 'string'  # 等价于 L[:] = 'string'

执行后L变成['s','t','r','i','n','g'],和list('string')结果一致,原因可以拆成两点说明:

  1. 切片赋值的规则
    当你用L[:]或L[0:]这种全切片给列表赋值时,Python会把赋值号右侧的内容当作可迭代对象处理,将该对象的每个元素依次替换/添加到列表的对应切片位置。因为原列表L是空的,所以相当于直接把迭代出的所有元素塞进列表。

  2. 字符串属于可迭代对象
    在Python里,字符串本质是字符的序列,属于可迭代对象。不管是把字符串传给切片赋值的右侧,还是传给list()构造函数,Python都会逐个遍历字符串里的每个字符,将它们作为独立元素加入列表。

说白了,这两个操作的核心逻辑都是把字符串拆成单个字符再组装成列表,所以结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:50:37