我想从第三个字符到字符串末尾获得一个新字符串,例如myString[2:end]。如果省略第二部分意味着“到结尾”,如果省略第一部分,它是否从头开始?
当前回答
为了完整性,其他人没有提到过。数组切片的第三个参数是一个步骤。因此,反转字符串非常简单:
some_string[::-1]
或者选择其他字符:
"H-e-l-l-o- -W-o-r-l-d"[::2] # outputs "Hello World"
在字符串中前后移动的能力与从开始或结束排列切片的能力保持一致。
其他回答
也许我错过了,但我在这页上找不到原始问题的完整答案,因为这里没有进一步讨论变量。所以我不得不继续寻找。
既然我还不能发表评论,让我在这里补充我的结论。我确信在访问此页面时,我不是唯一对此感兴趣的人:
>>>myString = 'Hello World'
>>>end = 5
>>>myString[2:end]
'llo'
如果你离开第一部分,你会得到
>>>myString[:end]
'Hello'
如果将:放在中间,则会得到最简单的子字符串,即第5个字符(计数以0开头,因此在本例中为空):
>>>myString[end]
' '
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'
Subs()通常(即PHP和Perl)是这样工作的:
s = Substr(s, beginning, LENGTH)
所以参数是开始和长度。
但Python的行为不同;它需要开头和END(!)之后的一个。初学者很难发现这一点。因此,Substr(s,begin,LENGTH)的正确替换为
s = s[ beginning : beginning + LENGTH]
有没有一种方法可以在Python中对字符串进行子串,以获得从第三个字符到字符串末尾的新字符串?也许像myString[2:end]?
是的,如果您将名称end赋值或绑定到常量singleton None,这实际上是有效的:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
切片表示法有3个重要参数:
开始停止步
未给定时,它们的默认值为None,但我们可以显式传递它们:
>>> stop = step = None
>>> start = 2
>>> myString[start:stop:step]
'34567890'
如果离开第二部分意味着“直到结束”,如果你离开第一部分,它是否从头开始?
是的,例如:
>>> start = None
>>> stop = 2
>>> myString[start:stop:step]
'12'
请注意,我们在切片中包括start,但我们只包括stop,而不包括stop。
当步长为“无”时,默认情况下,切片使用1作为步长。如果您使用负整数,Python就足够聪明,可以从头到尾。
>>> myString[::-1]
'0987654321'
我在解释切片表示法问题的答案中详细解释了切片表示法。
使用硬编码索引本身可能会一团糟。
为了避免这种情况,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
使用切片可以获得可读性。
推荐文章
- 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等价的函数?