python - 如果索引范围未获得替换值的完整列表,为什么将字符串添加为列表替换时会分解为字母?
问题描述
所以我创建了这个列表:
desk = ['mouse', 'matchbox', 'laptop', 'water']
当用新字符串替换列表的前两个值时,但对于测试用例,不提供第二个替换字符串值,python 将第一个替换值分解为列表中的单个字母。例如:
desk[0:2] = 'mouse'
desk : ['m', 'o', 'u', 's', 'e', 'laptop', 'water']
我知道这可能永远不会有用,但我只是想弄清楚这背后的逻辑。
先感谢您。
解决方案
表单的切片赋值
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']
推荐阅读
- android - 将数据从 firebase 实时数据库移动到 firestore
- python - Django 和 Python 的新手,基于自定义类的视图——我这样做对吗?
- elasticsearch - 弹性搜索内存管理和堆警报
- angular - 自动完成找不到“object”类型的不同支持对象“[object Object]”
- javascript - 如何从行总计中获取总计
- sql - sql server 使用 FOR XML PATH 连接多行
- azure-container-service - Azure VM 磁盘附件数太低。这个限制可以提高吗?
- delphi - 如何枚举 TCategoryPanel 持有的所有控件?
- javascript - 我如何获得嵌套对象的键 = used For .... in?
- android - 如何在 WorkManger 系统范围内注册定期工作请求一次(即在引导或安装之后)