使用python 2.7
如何编写一个函数来大写字符串的第一个字母而不管其余部分(即不使用.capitalize()
)然后使用另一个以嵌套列表作为参数的函数,应用第一个函数在嵌套的for循环中?
例如
def capital_first():
#some code
def capital_nested([['heLLo','hi'],['giddAy'',goodday'],['gooDbye,'seeYA','adios']])
#some code
capital_first()
输出另一个带有大写字母的嵌套列表
[['HeLLo','Hi'],['GiddAy'',Goodday'],['GooDbye,'SeeYA','Adios']]
我目前有
def cap_first(word):
newone = word[0].upper()
return newone
def capitalize_nested(x):
newlist = []
for item in x:
for word in item:
newlist.append(cap_first(word))
print newlist
输出
['M', 'M', 'Y', 'Y', 'T', 'T', 'T']
我知道这是因为我已将word[0]
编入索引但不确定如何解决此问题。
答案 0 :(得分:2)
您需要在循环中重新创建内部列表:
def capitalize_nested(x):
newlist = []
for item in x:
newlist2 = []
for word in item:
newlist2.append(cap_first(word))
newlist.append(newlist2)
print newlist
答案 1 :(得分:1)
newone = word[0].upper()
有了这个,这个词的其余部分就被丢弃了。相反,像这样追加其余部分:
newone = word[0].upper() + word[1:]