2015-04-06 60 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 2015-04-06 02:36:13

回答

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 2015-04-06 02:43:02

+0

这不是堆栈溢出的工作原理! – dbliss 2015-04-06 02:44:38

+0

@dbliss你在前面的问题中看到,我无法理解他的需求。但是这清楚地解释了他的需求。我不希望代表了,如果删除这个问题,我已经准备好添加到我以前的答案。但是我之前看到过许多连续的问题。问题2,问题1的继续。 – 2015-04-06 02:48:44

0

不知道为什么会有人想这样做,但在这里你去:

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

为什么每次执行后都打印“无”? – socrates 2015-04-06 02:48:21

+0

你把它放在你的代码中的什么地方?无论如何Avinash的答案是更好的。 – pzp 2015-04-06 02:52:23

+0

'None' ................... – socrates 2015-04-06 02:52:54

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

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

如果列表被输入作为一个合法的Python列表[...]那么你可以使用JSON模块把这个字符串在Python对象(即列表),然后再回来字符串后,你的标题,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"] 
相关问题