首页 > 解决方案 > 如果索引范围未获得替换值的完整列表,为什么将字符串添加为列表替换时会分解为字母?

问题描述

所以我创建了这个列表:

desk = ['mouse', 'matchbox', 'laptop', 'water']

当用新字符串替换列表的前两个值时,但对于测试用例,不提供第二个替换字符串值,python 将第一个替换值分解为列表中的单个字母。例如:

desk[0:2] = 'mouse'

desk : ['m', 'o', 'u', 's', 'e', 'laptop', 'water']

我知道这可能永远不会有用,但我只是想弄清楚这背后的逻辑。

先感谢您。

标签: python

解决方案


表单的切片赋值

dest[start:end] = source

大致相当于:

# remove old contents of the slice
for _ in range(start, end):
    dest.pop(start)
# insert replacement in its place
for el in source:
    dest.insert(start, el)

Whensource是一个字符串,for el in source:表示遍历字符,因此字符串被拆分。

如果您想使字符串成为单个元素,请将其包装在一个列表中。

desk[0:2] = ['mouse']

推荐阅读