Python 使用切片将字符串拆分为单个字符
我不明白下面的python代码是如何使用Python 使用切片将字符串拆分为单个字符,python,string,split,Python,String,Split,我不明白下面的python代码是如何使用b[:0]=a将字符串拆分为单个字符的。它不应该只是b=['abc'] a='abc' b=[] b[:0]=a print(b) 输出: b=[a,b,c] 这是因为可以使用来拆分任何ITerable,例如字符串 您甚至不需要[:0] list(a)#['a',b',c'] 或者 b=[] b[:]=a#['a','b','c'] 根据每当赋值语句的左侧进行切片时,python都会执行\uuuuu setitem\uuuu,因此在本例中,它会将右侧
b[:0]=a
将字符串拆分为单个字符的。它不应该只是b=['abc']
a='abc'
b=[]
b[:0]=a
print(b)
输出:
b=[a,b,c]
这是因为可以使用来拆分任何ITerable,例如字符串
您甚至不需要[:0]
list(a)#['a',b',c']
或者
b=[]
b[:]=a#['a','b','c']
根据每当赋值语句的左侧进行切片时,python都会执行\uuuuu setitem\uuuu
,因此在本例中,它会将右侧项放在切片的开始处。看看这个例子:
>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
>>> b[3:5] = a
>>> print(b)
[5, 6, 7, 1, 2, 3, 4]
这里有两件事在起作用 当你这样做的时候
b[:0]=
将某物插入到列表的开头(这是附加到列表切片)
如果是的话
b[1:3]=['a','b','c']
然后,索引1
和2
中的项目将替换为右侧的项目
请尝试以下操作:
b=[]
b[:0]=[1,2,3]
您会注意到右侧的项目插入到列表的开头
现在当你这么做的时候
b[:0]=“abc”
由于右侧的项目必须是一个序列,所以字符串被解包到
['a','b','c']
,然后这些被插入到列表的开头,特别是Casey Kuball的回答。@aderchox问题更多的是关于为什么这段代码的行为如此