2015-04-06 2 views
-1

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

Я написал эту программу. Проблема в том, что если я вхожу в ["apple pie", "brownies","dulce de leche"], он возвращается ['Apple Pie', ' Brownies', 'Dulce De Leche'] Как следует из этого вопроса, каждая строка должна быть распечатана с кавычками и без пробела после запятой. ПОЖАЛУЙСТА, ПОМОГИТЕ!

Вот моя программа:

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() 
+0

это DUP: http://stackoverflow.com/questions/29463718/how-to-capitalize-only-the-title -of-each-string-in-the-list – dbliss

ответ

1

Как мой предыдущий ответ, вы просто должны присоединиться к списку с ",", и вам нужно добавить [", "] в начале и в конце.

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 '["' + '","'.join(r)+ '"]' 

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

main() 
+0

вы просто ответили на дубликат этого вопроса. это копия и вставка этого ответа. , , – dbliss

+0

Это не то, как работает переполнение стека! – dbliss

+0

@dbliss, который вы видите в предыдущем вопросе, я не могу понять его потребности. Но это ясно объясняет, каковы на самом деле его потребности. Я не хочу, чтобы rep больше, если op удаляет этот вопрос, я готов добавить это к моему предыдущему ответу. Но я видел много таких смежных вопросов, как раньше. question2, продолжение вопроса 1. –

0

Не знаю, почему кто-то захочет это сделать, но здесь вы идете:

s = "[" 
for i in x: 
    s += '"' + i + '",' 
print s + "]" 
+0

почему он печатает 'None' после каждого исполнения? – socrates

+0

Где вы положили его в свой код? В любом случае ответ Авинаша лучше. – pzp

+0

'None' ................... – socrates

0
def Capitalize(parameter): 
    return ["\""+i.strip().strip("\"").title()+"\"" for i in s[1:-1].split(",")] 

title = Capitalize(y) 
print "[" + ",".join(title) + "]" 
0

Если список в настоящее время вводятся в виде списка легитимного питона [...], то вы можете использовать модуль JSON, чтобы превратить эту строку в объекте питона (а именно список), а затем снова после вас название строк, json.dumps() дает вам контроль над сепараторами, например:

>>> from json import loads, dumps 
>>> strings = loads(input("Please enter a list of strings: ")) 
>>> print(dumps([s.title() for s in strings], separators=(',',':'))) 
["Apple Pie","Brownies","Dulce De Leche"] 
Смежные вопросы