只保留前5个字符 - Python

26

我有一个字符串 'AAAH8192375948',如何保留这个字符串的前5个字符,并删除其余的部分?是否可以使用带有负整数的 l.strip() 函数?谢谢。

可能的重复问题:
有没有办法在Python中截取字符串?


@user851620 strip()split() 是两个不同的函数。你真的是想用 strip() 吗?我想知道 "strip all the rest" 是什么意思。 - eyquem
3个回答

45
在Python中,字符串是一种序列类型,就像列表或元组一样。只需获取前5个字符即可:
 some_var = 'AAAH8192375948'[:5]
 print some_var # AAAH8

切片符号为[start:end:increment] -- 如果想使用默认值,数字是可选的(起始位置默认为0,结束位置默认为my_sequence的长度,增量默认为1)。因此:
 sequence = [1,2,3,4,5,6,7,8,9,10] # range(1,11)

 sequence[0:5:1] == sequence[0:5] == sequence[:5] 
 # [1, 2, 3, 4, 5]

 sequence[1:len(sequence):1] == sequence[1:len(sequence)] == sequence[1:]
 # [2, 3, 4, 5, 6, 7, 8, 9, 10]

 sequence[0:len(sequence):2] == sequence[:len(sequence):2] == sequence[::2]
 # [1, 3, 5, 7, 9]

strip函数可以从字符串的开头和结尾删除一个或多个字符。如果输入一个负数,那么它将尝试删除该负数的字符串表示形式。


5
这不正确:在Python中,字符串是不可变序列类型。但是,如果切片的值被重新赋给变量,则您的解决方案是正确的。 - brandizzi

7
你听说过切片吗?
>>> # slice the first 5 characters
>>> first_five = string[:5]
>>>
>>> # strip the rest
>>> stripped = string[5:].strip()
>>>
>>> # in short:
>>> first_five_and_stripped = string[:5], string[5:].strip()
>>>
>>> first_five_and_stripped
('AAAH8', '192375948')

1
难道不应该是 string[:5] 吗? - thegrinner
我看到你在做什么,但对于那些还不了解切片符号的人来说可能会有点混淆。 - senderle
如何保留字符串的前5个字符并删除其余部分? @senderle 这就是我问他是否听说过它的原因。但我会完成它。 - Niklas R

5
我假设您的意思不只是“除去前5个字符”,而是“保留前5个字符并对其余部分运行strip()函数”。
>>> x = 'AAH8192375948'
>>> x[:5]
'AAH81'
>>> x[:5] + x[5:].strip()
'AAH8192375948'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接