Python 有人能给我解释一下filter()函数吗?
为什么它的输出是e 过滤元音的函数Python 有人能给我解释一下filter()函数吗?,python,Python,为什么它的输出是e 过滤元音的函数 def fun(variable): letters = ['a', 'e', 'i', 'o', 'u'] if (variable in letters): return True else: return False 序列 sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r'] 使用过滤函数 filtered = filter(fun, seque
def fun(variable):
letters = ['a', 'e', 'i', 'o', 'u']
if (variable in letters):
return True
else:
return False
序列
sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r']
使用过滤函数
filtered = filter(fun, sequence)
print('The filtered letters are:')
for s in filtered:
print(s)
如果函数“fun”的参数是元音,则返回True。你看到了吧?如果添加print(fun('b'))
和(print(fun(e'))
,您可以看到这一点
filter
函数在其第二个参数中采用一个序列(可以是字符串、列表、元组,甚至dict)。对于该序列中的每个元素,一次调用一个,它在其第一个参数中调用该函数。如果该函数返回True,则筛选器将该元素添加到它返回的序列中。因此,filtered
最终成为sequence
其中fun(x)的那些成员的序列
返回True。在本例中,fun
将返回True
如果您的输入变量变量在列表中字母=['a',e','i','o','u']
。即fun('a')
将返回True
但fun('b')
将返回False
是一个内置函数,它遍历某个序列并为序列中的每个项调用某个函数,然后返回该函数返回真值的值。在这种情况下,is调用fun('g')
,fun('e')
,fun('e')
,fun('j')
等,并返回序列中的值,其中fun
返回True。首先,您需要了解python中的筛选函数
请参阅本文:
如果字符以字母形式存在,filter函数将迭代序列中的每个字符,并返回所有为真的元素。@Yeshwin请友好一点,遵循SO的CoC。您对哪行代码有困难?是的..对我来说似乎也很困惑…正如您提到的,您是初学者,尝试使用一些打印语句来调试您的代码代码我投票认为结束语太宽泛了。简单地说一个人不理解多行代码而不指定代码的哪一部分不清楚是不够集中的。此外,这个问题没有显示任何研究,没有更多的集中可能对其他人没有用。