2019年10月21日月曜日

[Python]ハッシュを要素とする配列から'Bart, Lisa & Maggie'のように名前を結合した文字列を返す関数。

問題

入力:名前を含むハッシュの配列 戻り:カンマ区切りの名前文字列を返す。ただし、最後の2名の名前はアンパサンドで区切ります。

namelist([ {'name': 'Bart'}, {'name': 'Lisa'}, {'name': 'Maggie'} ])
# returns 'Bart, Lisa & Maggie'

namelist([ {'name': 'Bart'}, {'name': 'Lisa'} ])
# returns 'Bart & Lisa'

namelist([ {'name': 'Bart'} ])
# returns 'Bart'

namelist([])
# returns ''

解答

def namelist(names)
  return ' & '.join([ h['name'] for h in names ] ).replace(' &', ',', len(names)-2)