【问题标题】:lowercase first n characters前 n 个字符小写
【发布时间】:2016-04-13 08:22:39
【问题描述】:

我正在尝试将字符串中的前 n 个字符小写。

例如,假设我想将此字符串中的前 4 个字符小写:

String1 = 'HELPISNEEDED'

我希望输出如下所示:

String1 = 'helpISNEEDED'

我想我可以用这个:

String1 = String1[4].lower() + String1[5:]

但这给了我这个输出:

String1 = 'iSNEEDED'

知道我做错了什么吗?

【问题讨论】:

    标签: python lowercase


    【解决方案1】:

    您只引用了来自 String1 的单个字符,而不是使用列表切片:

    String1.replace(String[:4],String1[:4].lower())
    

    【讨论】:

    • 这仍然会产生一个新的字符串对象。这并不比使用串联更好。事实上,它更糟糕,因为你要求 Python 做更多的工作。
    【解决方案2】:

    非常简单。检查你的代码。应该是:

    String1=String1[:4].lower() + String1[4:]
    

    不仅你忘记了这一点 --> [:4] 。你也写了's'代替String1

    【讨论】:

      【解决方案3】:

      [4] 取第五个字符,取前四个,你需要,类似于[5:](最后五个),写[:4]

      【讨论】:

      • 取第五个而不是第四个,它是零索引
      【解决方案4】:

      您只选择了一个字符。对两个部分都使用切片:

      String1 = String1[:4].lower() + String1[4:]
      

      注意第二个对象从4开始切片,而不是5;你想跳过'HELP',而不是'HELPI'

      >>> String1 = 'HELPISNEEDED'
      >>> String1[:4].lower() + String1[4:]
      'helpISNEEDED'
      

      记住:开始索引是包含的,结束索引是排除的; :4 选择索引 0、1、2 和 3,而 4: 选择索引 4 及以上。

      【讨论】:

      • 索引是我的问题。感谢您清除它:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多