我想从第三个字符到字符串末尾获得一个新字符串,例如myString[2:end]。如果省略第二部分意味着“到结尾”,如果省略第一部分,它是否从头开始?
当前回答
如果myString包含一个从偏移量6开始且长度为9的帐号,则可以通过以下方式提取帐号:acct=myString[6:][:9]。
如果OP接受这一点,他们可能希望以实验的方式,
myString[2:][:999999]
它有效-不会引发错误,也不会出现默认的“字符串填充”。
其他回答
Subs()通常(即PHP和Perl)是这样工作的:
s = Substr(s, beginning, LENGTH)
所以参数是开始和长度。
但Python的行为不同;它需要开头和END(!)之后的一个。初学者很难发现这一点。因此,Substr(s,begin,LENGTH)的正确替换为
s = s[ beginning : beginning + LENGTH]
text = "StackOverflow"
#using python slicing, you can get different subsets of the above string
#reverse of the string
text[::-1] # 'wolfrevOkcatS'
#fist five characters
text[:5] # Stack'
#last five characters
text[-5:] # 'rflow'
#3rd character to the fifth character
text[2:5] # 'rflow'
#characters at even positions
text[1::2] # 'tcOefo'
使用硬编码索引本身可能会一团糟。
为了避免这种情况,Python提供了一个内置的对象slice()。
string = "my company has 1000$ on profit, but I lost 500$ gambling."
如果我们想知道我还剩多少钱。
正常溶液:
final = int(string[15:19]) - int(string[43:46])
print(final)
>>>500
使用切片:
EARNINGS = slice(15, 19)
LOSSES = slice(43, 46)
final = int(string[EARNINGS]) - int(string[LOSSES])
print(final)
>>>500
使用切片可以获得可读性。
a="Helloo"
print(a[:-1])
在上面的代码中,[:-1]声明从开始打印到最大限制-1。
输出:
>>> Hello
注意:这里a[:-1]也与a[0:-1]和a[0:len(a)-1]相同
a="I Am Siva"
print(a[2:])
输出:
>>> Am Siva
在上面的代码中,[2:]声明从索引2打印到最后一个元素。
请记住,如果您将打印字符串的最大限制设置为(x),那么它将打印字符串直到(x-1),并且还请记住列表或字符串的索引将始终从0开始。
嗯,我遇到了一个需要将PHP脚本转换为Python的情况,它有许多substr(字符串、开头、长度)的用法。如果我选择Python的字符串[开始:结束],我必须计算很多结束索引,所以更简单的方法是使用字符串[开始][:长度],这为我省去了很多麻烦。
推荐文章
- Numpy Max vs amax vs maximum
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 每n行有熊猫
- 实例属性attribute_name定义在__init__之外
- 如何获取在Python中捕获的异常的名称?
- 第一次出现的值大于现有值的Numpy
- 如何从Python函数中返回两个值?
- 前一个月的Python日期
- Python中方括号括起来的列表和圆括号括起来的列表有什么区别?
- 将整数转换为字符串,以逗号表示千
- Python日志记录不输出任何东西
- 将JavaScript字符串中的多个空格替换为单个空格
- 每n秒运行特定代码
- SQLAlchemy是否有与Django的get_or_create等价的函数?