Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用切片将字符串拆分为单个字符_Python_String_Split - Fatal编程技术网

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,因此在本例中,它会将右侧

我不明白下面的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
,因此在本例中,它会将右侧项放在切片的开始处。看看这个例子:

>>> 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问题更多的是关于为什么这段代码的行为如此