你好,我在使用函数时遇到了一些困难。
我在namedtuples中获得了一个餐馆列表(RL),并被要求创建一个按字母顺序对列表进行排序的函数,然后只返回每个namedtuple的名称。 这就是我到目前为止所拥有的
def alphabetical_names(r: Restaurant) -> list:
'''returns the name of all restaurants sorted alphabetically
'''
for restaurants in sorted(r):
return(Restaurant.name)
print(alphabetical_names(RL))
然而,当我跑这个时,我唯一得到的就是 '属性对象位于0x034A4A80>'我不知道为什么
答案 0 :(得分:0)
您的代码存在许多问题。
尝试:
def alphabetical_names(r: list) -> list:
'''returns the name of all restaurants sorted alphabetically
'''
for restaurant in sorted(r):
return(restaurant.name)
print(alphabetical_names(RL))
然而,这仍然存在问题,因为您只返回第一个结果,而不是列表。所以试试:
def alphabetical_names(r: list) -> list:
'''returns the name of all restaurants sorted alphabetically
'''
return sorted(r):
print(alphabetical_names(RL))
这可能不按您想要的顺序对条目进行排序,您可能需要提供已排序的cmp函数来更改排序顺序。