我两天前开始学习python,我被困住了
我有一张50种随机颜色的单子
f = ['black', 'red', 'blue', 'red', 'black', 'red', 'white', 'white', 'orange', 'black', 'orange', 'black', 'red', 'green', 'yellow', 'blue', 'blue', 'purple', 'white', 'yellow', 'green', 'black', 'orange', 'white', 'black', 'blue', 'blue', 'blue', 'orange', 'yellow', 'yellow', 'blue', 'red', 'white', 'yellow', 'blue', 'red', 'yellow', 'yellow', 'white', 'white', 'black', 'purple', 'red', 'orange', 'orange', 'blue', 'orange', 'black', 'red']
我想检索列表中有多少种颜色,所以我尝试使用滤镜和透镜
当我试着过滤的时候
filter(lambda x:'red', f)
它返回完整的列表,所以当我使用len()时,它给我50。你知道吗
我的过滤器哪里出问题了?我试过浏览文件,但似乎找不到任何东西,但会继续寻找。你知道吗
有什么建议吗?你知道吗
我的任务说明是
“(非常好)使用地图上的颜色计数(使用过滤器,减少或len)的频率 每种颜色都出现在子任务3的结果中。打印结果。“
虽然计数看起来容易些
lambda函数实际上并没有做任何比较:它只是每次返回字符串
'red'
,这总是真的,所以没有过滤掉任何项。实际上,您需要将字符串与传递到lambda的字符串进行比较,即x
:你不必过滤,创建一个新的列表,然后找到它的长度。只需使用
list.count
函数,如下所示您是否有意使用
filter
和lambda
?如果要获取项目计数,可以使用list
类型的count
方法:相关问题 更多 >
编程相关推荐