python-3.x - 字符串操作困惑? ELI5

标签 python-3.x

我对 python 非常陌生,我不知道为什么这段代码会给我这个输出。我尝试四处寻找答案,但找不到任何东西,因为我不确定要搜索什么。

像 I'm-5 一样的解释将不胜感激

astring = "hello world"
print(astring[3:7:2])

这给了我:“l”

还有

astring = "hello world"
print(astring[3:7:3])

给我:“lw”

我无法理解为什么。

最佳答案

这是Python中的字符串切片。 切片与常规字符串索引类似,但它只能返回字符串的一部分。

在切片中使用两个参数,例如[a:b]将返回一个字符串,从索引a开始直到(但不包括)索引b。 例如:

"abcdefg"[2:6] 将返回 "cdef"

使用三个参数执行类似的功能,但切片将仅返回选定间隙之后的字符。例如,[2:6:2] 将返回从索引 2 开始到索引 5 的每隔一个字符。 即 "abcdefg"[2:6:2] 将返回 ce,因为它只计算每两个字符。

在您的情况下,astring[3:7:3],切片从索引 3(第二个 l)开始,并向前移动指定的 3 个字符(第三个参数)到w。然后它停在索引 7 处,返回 lw

事实上,当仅使用两个参数时,第三个参数默认为 1,因此 astring[2:5]astring[2:5:1] 相同.

Python Central对 python 中的字符串切割和切片有一些更详细的解释。

关于python-3.x - 字符串操作困惑? ELI5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54948388/

相关文章:

python - 如何根据 Pandas 中的依赖值更新数据框?

python-3.x - 如何修复kivy-python中的 'stderr: kivy.factory.FactoryException: Unknown class <Toolbox>'错误

python-3.x - Microsoft Speech to Text Python SDK SPXERR_INVALID_HEADER 问题

Python:如何在操作系统中打开文件时写入文件

python - Django 。通过关闭钩子(Hook)上的模型访问数据库

python - 如何在 yield 中扩展元组?

jquery - Flask - 将参数传递给 JQuery $.getJSON 回调

Python从不同文件导入不同结果

python - ERR_TOO_MANY_REDIRECTS django 2.1 的问题

python - 没有名为 'scipy.sparse._sparsetools' 的模块