How to capitalize only the title of each string in the list?

不羁的心 提交于 2019-12-04 06:26:20

问题


WHOLE QUESTION: Write a function that takes as a parameter a list of strings and returns a list containing the each string capitalized as a title. That is, if the input parameter is ["apple pie", "brownies","chocolate","dulce de leche","eclairs"], your function should return ["Apple Pie", "Brownies","Chocolate","Dulce De Leche","Eclairs"].

My program(UPDATED):

I THINK I GOT MY PROGRAM RUNNING NOW! The problem is when I enter: ["apple pie"] it is returning: ['"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()

I am getting an error AttributeError: 'list' object has no attribute 'title' Please help!


回答1:


Just iterate over the name list and then for each name, change the case of first letter only by specifying the index number of first letter. And then add the returned result with the remaining chars then finally append the new name to the already created empty list.

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

OR

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)



回答2:


You're operating on the list, not a element of the list.

 r.title()

This makes no sense.



来源:https://stackoverflow.com/questions/29463718/how-to-capitalize-only-the-title-of-each-string-in-the-list

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!