我在Python中有一个函数,它由map()函数调用,该函数遍历作为参数发送的列表的所有元素。这个函数返回一个字典,map函数被分配给一个字典,但是Python解释器将它转换成一个列表。在
hotels_with_low_wifi_quality = pool.map(get_accomodation_wifi_rating, hotels_url_list)
所以在上面的句子中,hotels_with_low_wifi_quality是一个字典,get_conomodation_wifi_rating是一个返回字典的函数。在
但是,如果我打印的hotels_具有低_wifi_质量,则会输出以下内容:
[无,无,无,无,无,无,无,无,{u'\nPins Platja\n':u'4,3'},无,无,无,无] 没有
这显然是一份清单。如何将它转换成一个字典,其中None值被忽略,唯一的元素是[“Pins Platja”]=4.3
以下是get_-accomodation_-wifi_等级
^{pr2}$
看起来你想同时获得所有的低wifi分数。每个人都是正确的,使用全球词典是一个非常糟糕的主意。有一种不那么冗长的方法来完成您想要的:
在您的 获取住宿/wifi评级功能:
return (hotel_name, wifi_score)
使用python的内置
filter
过滤出非类型:hotels_with_low_wifi_quality = dict(filter(None, returned_list))
上面的Filter没有提供函数,根据python对该项的真实性的评估来评估列表中的每个项;只需要记住一些事情。在
Python有一种更好的语法,叫做list comprehension,用于映射和过滤。你可以实现你想要的
{aki>你想要做的是什么样的函数。在
首先,它似乎在填充一个全局
dict
并返回它,这是一个really bad idea。在第二,为了使用它,我只需返回一个
^{pr2}$name, rating
元组来执行以下操作。在相关问题 更多 >
编程相关推荐