python - 列表未正确切片
问题描述
菜鸟在这里。我目前在 python 中切片列表时遇到问题。我当前的代码如下。
lines = ['0', '1', '2', '3', '4', '5', '6']
lines[0:4] = ' _ '
print(lines)
输出是
[' ', '_', ' ', '4', '5', '6']
有时它甚至会将列表的长度更改为 3 或 2..
为什么要这样做?我觉得它应该很直截了当..
谢谢你的帮助!
编辑:对不起,如果我不清楚,我在开车上班前急着写这个。我想要的输出是所有索引位置,例如。0:5 将成为字符串“_”。像这样 [' _ ',' _ ',' _ ',' _ ',' ',' '] 希望这能更清楚一点
解决方案
字符串'_'实际上只是一个字符数组[' ', '_', ' ']
。
因此,lines[0:4] = ' _ '
将 lines 的第一个元素设置为 ' ',第二个设置为 '_',第三个设置为 ' '。这解释了您正在目睹的行为。
如果您试图使列表的前三个元素成为“_”,我建议只lines[i] = ' _ '
为每个 i 做你想用该字符串替换的索引。如果您使用库函数,可能有一种单行方法可以做到这一点。
for i in range(4):
lines[i] = ' _ '
推荐阅读
- c++ - 在 VS Code 中为 c++ 进行调试和发布配置
- jenkins - 如何在 jenkinsfile 中并行运行所有阶段
- java - 给定服务器的请求接受概率时如何对请求进行负载平衡?
- java - Java:给定一个整数数组,Java 如何确定使用哪个 remove() 方法?
- django - 在 Kubernetes pod 输出中将 Django 与 db.sqlite3 和持久卷一起使用 - django.db.utils.OperationalError:无法打开数据库文件
- javascript - 卡在 FreeCodeCamp 的 JS 计算器上
- java - Camel REST API 的 Junit 测试用例
- asp.net-mvc-4 - 即使我指定连接到不同的服务器,SQL Server 连接也总是使用本地数据库
- laravel - 无法在 laravel 8 的插件 Yajra Datatables 中从 mongodb 获取数据
- mongoose - GraphQL Dataloader 总是返回 null