首页 > 解决方案 > 如何解决字符串索引必须是 for 循环中的整数问题,用于将字符串中的每个单词大写

问题描述

我希望每个人都安全。

我正在尝试遍历一个字符串并将字符串的每个第一个字母大写。我知道我可以使用 .title() 但是

a)我想弄清楚在这种情况下如何使用大写或其他东西 - 基础知识,以及

b) 测试中的字符串,有一些带有 (') 的单词,这使得 .title() 混淆,并且将 (') 后面的字母大写。

def to_jaden_case(string):
    appended_string = ''
    word = len(string.split())
    for word in string:
       new_word = string[word].capitalize()
       appended_string +=str(new_word)
    return appended_string

问题是解释器给了我“TypeError:字符串索引必须是整数”,即使我在'word'中有一个整数输入。有什么帮助吗?

谢谢!

标签: pythonstringfor-looptypeerrorindices

解决方案


您正在使用字符串索引来访问另一个字符串word是您正在word使用string[word]它访问的字符串导致错误。

def to_jaden_case(string):
   appended_string = ''
   for word in string.split():
       new_word = word.capitalize()
       appended_string += new_word
   return appended_string

使用简单的解决方案map()

def to_jaden_case(string):
    return ' '.join(map(str.capitalize, string.split()))

推荐阅读