任务目标:
Given: an array containing hashes of names
Return: a string formatted as a list of names separated by commas except for the last two names, which should be separated by an ampersand.
Example:
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): str = "" if len(names) == 0: pass elif len(names) == 1: str = str + (names[0]['name']) else: for each in names[0:-2]: str = str + (each['name']) + (', ') str = str + (names[-2]['name']) + (' & ') + (names[-1]['name']) return str
codewars上的解决方案:from ezetter
def namelist(names): if len(names)==0: return '' if len(names)==1: return names[0]['name'] return ', '.join([n['name'] for n in names[:-1]]) + ' & ' + names[-1]['name']
参考资料
http://www.linuxidc.com/Linux/2011-09/42950.htm
本文介绍了一个简单的编程问题及其解决方案:给定一个包含名字哈希的数组,返回一个字符串,该字符串将所有名字以逗号分隔,最后两个名字用与号(&)连接。文章提供了两种实现方式,并附上了代码示例。
5万+

被折叠的 条评论
为什么被折叠?



