Python 为什么我只能从列表中得到一项
我试图从字符串中获取共享的字母,而不是从字母列表中获取。我只返回l与w共享的最后一个字母。我想要所有的共享信件Python 为什么我只能从列表中得到一项,python,string,list,Python,String,List,我试图从字符串中获取共享的字母,而不是从字母列表中获取。我只返回l与w共享的最后一个字母。我想要所有的共享信件 def f(w,l): common = [] for i in w: if in i in l: return common.append(i) 只要i在l中,您的代码返回s,它将立即退出您的函数。而是这样做: def f(w,l): common = [] for i in w: if i i
def f(w,l):
common = []
for i in w:
if in i in l:
return common.append(i)
只要
i
在l
中,您的代码返回
s,它将立即退出您的函数。而是这样做:
def f(w,l):
common = []
for i in w:
if i in l:
common.append(i) # no return needed so it will collect all
return common
确保在函数末尾返回common
,以便获得common
中存储的所有值 试试这个:
def f(w,l):
common = []
for i in w:
if i in l:
common.append(i)
return common
问题是列表的
.append
方法返回None
。您第一次执行.append
,是从函数返回的,因此总是从函数返回None
我认为你真正想要的是一份清单:
def f(w,l):
return [i for i in w if i in l]
正如其他人所指出的,您可能希望选择更具描述性的变量名。您不应该返回任何字母<代码>公用。追加(i)将始终返回
None
。。。假设你不想保存重复,等等,你最好使用SET:<代码> SET(W)。交集(L)< /代码>将或多或少地做你想要的。你可以考虑使用<代码> W和<代码> L>代码>,这样你就可以只使用<代码> W.交集(L)< /代码>。此外,考虑将变量<代码> L>代码>重命名为<代码> L>代码>,因为它看起来像是一些字体中的数字1。如果有帮助,请考虑接受这个答案。