【问题标题】:Strip all but first 5 characters - Python [duplicate]去除除前 5 个字符之外的所有字符 - Python [重复]
【发布时间】:2011-10-12 17:56:30
【问题描述】:

可能重复:
Is there a way to substring a string in Python?

我有一个格式为“AAAH8192375948”的字符串。如何保留此字符串的前 5 个字符,并删除所有其余字符?它的形式是带负整数的 l.strip 吗?谢谢。

【问题讨论】:

  • @user851620 strip()split() 是两个不同的函数。你真的是说 strip() 吗?我想知道“剥离所有其余部分”是什么意思

标签: python


【解决方案1】:

Python 中的字符串是sequence type,类似于列表或元组。只需抓住前 5 个字符:

 some_var = 'AAAH8192375948'[:5]
 print some_var # AAAH8

切片符号是[start:end:increment]——如果你想使用默认值,数字是可选的(开始默认为 0,结束为 len(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 从字符串的开头和结尾删除一个字符或一组字符 - 输入负数仅表示您正在尝试从字符串中删除该负数的字符串表示形式。

【讨论】:

  • 不对:字符串在 Python 中是不可变的序列类型。但是,如果将切片的值重新归因于变量,则您的解决方案是正确的。
  • @brandizzi——非常正确。我已经更新了我的答案。谢谢!
  • 非常感谢!效果很好。
【解决方案2】:

你听说过切片吗?

>>> # 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')

【讨论】:

  • 不就是string[:5]吗?
  • 我知道你在这里做什么,但对于还不了解切片表示法的人来说可能会有点困惑。
  • Quote: 我如何保留这个字符串的前 5 个字符,并删除所有其余字符? @senderle 这就是为什么我问他是否听说过它。但我会完成它
【解决方案3】:

我假设您的意思不仅仅是“删除前 5 个字符以外的所有字符”,而是“保留前 5 个字符并在其余部分上运行 strip()”。

>>> x = 'AAH8192375948'
>>> x[:5]
'AAH81'
>>> x[:5] + x[5:].strip()
'AAH8192375948'

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2021-11-29
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 2016-07-19
    • 1970-01-01
    相关资源
    最近更新 更多