【问题标题】:change 2 byte in a string更改字符串中的 2 个字节
【发布时间】:2009-11-15 15:14:20
【问题描述】:

我想像这样更改字符串中的 2 个字节:

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

假设我想用 11 替换 'RS',我知道如何用像 [:] 这样的一个字节来做,但是在字符串中间有 2 个或更多?

谢谢!

【问题讨论】:

  • 听起来像是功课。你可能想先展示你的尝试。
  • 嗯...如何替换字符串中的单个字节?字符串是不可变的。

标签: python string


【解决方案1】:

字符串是不可变的,您无法更改它们。您必须从旧字符串的一部分创建一个新字符串:

>>> az= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> az= az[:17]+'11'+az[19:]
>>> az
'ABCDEFGHIJKLMNOPQ11TUVWXYZ'

虽然取决于你在做什么,但可能有一种比依赖固定索引更合适的处理方式,例如。

>>> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.replace('RS', '11', 1)
'ABCDEFGHIJKLMNOPQ11TUVWXYZ'

【讨论】:

    【解决方案2】:

    我会使用string.replace():

    >>> import string
    >>> az = string.lowercase
    >>> az = az.replace('rs', '11')
    >>> az
    'abcdefghijklmnopq11tuvwxyz'
    

    【讨论】:

      【解决方案3】:

      我认为这是一个技巧问题,请参阅“如何用一个字节来做”

      >>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      >>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ".replace("R","1").replace("S","1")
      >>> print st
      ABCDEFGHIJKLMNOPQ11TUVWXYZ
      

      【讨论】:

        猜你喜欢
        • 2015-04-25
        • 2014-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-16
        • 2011-12-17
        • 2021-10-08
        相关资源
        最近更新 更多