2015-04-06 2 views
0

ВЕСЬ ВОПРОС: Напишите функцию, которая принимает в качестве параметра список строк и возвращает список, содержащий каждую строку, заглавную как заголовок. То есть, если входной параметр равен ["apple pie", "brownies","chocolate","dulce de leche","eclairs"], ваша функция должна вернуть ["Apple Pie", "Brownies","Chocolate","Dulce De Leche","Eclairs"].Как использовать только заголовок каждой строки в списке?

Моя программа (ОБНОВЛЕНО):

Я думаю, что я получил свою программу, работающую сейчас! Проблема заключается в том, когда я вхожу: ["apple pie"] она возвращается: ['"Apple Pie"']

def Strings(): 
    s = [] 
    strings = input("Please enter a list of strings: ").title() 
    List = strings.replace('"','').replace('[','').replace(']','').split(",") 
    List = List + s 

    return List 

def Capitalize(parameter): 
    r = [] 
    for i in parameter: 
    r.append(i) 

    return r 

def main(): 
    y = Strings() 
    x = Capitalize(y) 
    print(x) 

main() 

Я получаю сообщение об ошибке AttributeError: 'list' object has no attribute 'title' Пожалуйста, помогите!

+0

Вы дали нам описание проблемы, которую вы пытаетесь решить, так, что ваш вопрос? – belwood

+0

Как использовать заголовок каждой строки в списке? – brilliant

ответ

0

Просто перебирайте список имен, а затем для каждого имени измените случай первой буквы, указав номер индекса первой буквы. Затем добавьте возвращаемый результат с оставшимися символами, а затем добавьте новое имя в уже созданный пустой список.

def Strings(): 

    strings = input("Please enter a list of strings: ") 
    List = strings.replace('"','').replace('[','').replace(']','').split(",") 


    return List 

def Capitalize(parameter): 
    r = [] 
    for i in parameter: 
    m = "" 
    for j in i.split(): 
     m += j[0].upper() + j[1:] + " " 
    r.append(m.rstrip()) 


    return r 

def main(): 
    y = Strings() 
    x = Capitalize(y) 
    print(x) 

main() 

ИЛИ

import re 
strings = input("Please enter a list of strings: ") 
List = [re.sub(r'^[A-Za-z]|(?<=\s)[A-Za-z]', lambda m: m.group().upper(), name) for name in strings.replace('"','').replace('[','').replace(']','').split(",")] 
print(List) 
+0

Он работает, но я хочу, чтобы строки были распечатаны с кавычками, как указано в вопросе – brilliant

+0

Вы программируете: '[" apple pie "]' return '[ «Apple pie»] ' – brilliant

+0

проверить мое обновление .. –

0

Вы работаете в списке, а не в элементе списка.

r.title() 

Это не имеет никакого смысла.

+0

исправить это! @bald – brilliant

+0

Я хочу, чтобы строки печатались с кавычками – brilliant

Смежные вопросы