像C中的地址一样按地址拆分字符串(Python'字符串切片)

时间:2016-11-28 20:12:01

标签: python c python-2.7 pointers slice

在C中,您可以通过执行以下操作来访问包含地址字符串的字符串中的所需位置:

&string[index]

例如,这段代码:

#include <stdio.h>

int main()
{
  char *foo = "abcdefgh";
  printf("%s\n", &foo[2]);
}

将返回:

cdefgh

有没有办法在Python中做到这一点?

3 个答案:

答案 0 :(得分:9)

在Python中,它被称为字符串切片,语法为:

>>> foo = "abcdefgh"
>>> foo[2:]
'cdefgh'

检查Python's String Document,它演示了切片功能以及python中 strings 可用的其他功能。

我还建议您查看:Cutting and slicing strings in Python,其中展示了一些非常好的例子。

以下是与字符串切片相关的几个示例:

>>> foo[2:]     # start from 2nd index till end
'cdefgh'
>>> foo[:3]     # from start to 3rd index (excluding 3rd index)
'abc'
>>> foo[2:4]    # start from 2nd index till 4th index (excluding 4th index)
'cd'
>>> foo[2:-1]   # start for 2nd index excluding last index
'cdefg'
>>> foo[-3:-1]  # from 3rd last index to last index ( excluding last index)
'fg'
>>> foo[1:6:2]  # from 1st to 6th index (excluding 6th index) with jump/step of "2"
'bdf'
>>> foo[::-1]   # reverse the string; my favorite ;)
'hgfedcba'

答案 1 :(得分:2)

这是你可以做到的:

foo = "abcdefgh"
print foo[2:]

更普遍; foo[a:b]表示从位置a(包含)到b(已排除)的字符。

答案 2 :(得分:1)

对于你的问题,“切片”就是答案。

语法:s[a:b]

这将为您提供从索引a到b-1的字符串 如果你想要从索引到结束的字符串,那么使用

s[a:]

如果你想要字符串从开始到索引b然后使用

s[:b+1]

以你的例子为例:

s="abcdefgh"
print s[2:]

将打印cdefgh,因此是您问题的答案。

您可以从https://www.dotnetperls.com/substring-python

了解更多相关信息