私はあなたがそのために再帰的な機能を必要とは思わない。
new_list = [name.split()[0] for name in nameList]
EDIT: オーケー、それは再帰関数する必要がある場合は、この作品:
def convertName(nameList):
if nameList == []:
return []
elif len(nameList) == 1:
return [nameList[0].split()[0]]
else:
head = nameList[:1]
rest = nameList[1:]
print('head {}, rest {}'.format(head, rest))
return convertName(head)+convertName(rest)
出力は次のように続いている:
>>> print(convertName(nameList))
head ['Julia Truong'], rest ['Chen Wu', 'Jebb Castro', 'Ron Kenndey', 'X Y']
head ['Chen Wu'], rest ['Jebb Castro', 'Ron Kenndey', 'X Y']
head ['Jebb Castro'], rest ['Ron Kenndey', 'X Y']
head ['Ron Kenndey'], rest ['X Y']
['Julia', 'Chen', 'Jebb', 'Ron', 'X']
もちろん、あなた機能内でprint
を削除することができます - 私はそれが試験のレビューであるので、それがどのように動作するかを示すためにそこにそれを残しました。私はまだこれが非常に不快であると感じています、そして、私は本当にリストの理解をここで好むでしょう。
空白がちょっと混乱しています。どういう意味?なんて思う?何がうまくいかないの? – doctorlove