Осложнения для l oop для прописных слов в строке в Python 3 - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь использовать слова в строке, используя следующую технику:

 def solve(s):
     if len(s)>0 and len(s)<1000:
         li= s.split(" ")

         for i in li:
             i= i.capitalize()

     return " ".join(li)

Но, похоже, это не работает. С другой стороны, хотя я использую приведенную ниже технику, она прекрасно работает. Пожалуйста, помогите мне с использованием двух видов "для" l oop в двух случаях.

def solve(s):
    if len(s)>0 and len(s)<1000:
        li= s.split(" ")

        for i in range(len(li)):
            li[i]= li[i].capitalize()

    return " ".join(li)

Ответы [ 2 ]

2 голосов
/ 07 января 2020

В приведенной выше строке вы не выбрасываете заглавное значение в переменную li, вы просто заменяете значение фактического элемента:

 for i in li:
     i= i.capitalize()

Во втором подходе вы выбрасываете значение в переменную li опять же, именно поэтому он работает во втором случае.

0 голосов
/ 07 января 2020

Вы понимаете, что у строк есть встроенный метод, чтобы сделать именно это?

>>> "hello world this is a test".title()
'Hello World This Is A Test'
>>> 
...