s=""
a=['1','2']
for i in a:
s+=i
b=['1','2','3']
a in b
具体题目在下方
def cookable_recipes(ings, recipes):
"""
>>> rec = {'Egg Fried Rice': ['egg', 'rice', 'msg'], \
'Spaghetti': ['noodle', 'tomato sauce'], 'Steamed Rice': ['rice']}
>>> cookable_recipes(['egg', 'msg', 'rice'], rec)
['Egg Fried Rice', 'Steamed Rice']
>>> cookable_recipes(['egg', 'rice', 'msg', 'noodle', 'tomato sauce'], rec)
['Egg Fried Rice', 'Spaghetti', 'Steamed Rice']
>>> cookable_recipes(['egg'], rec)
[]
"""
keys = [i for i in recipes]
values=list(recipes.values())
result=[]
for i in values:
if i in ings:
result.append(i)
return result
s=""
a=['1','2']
for i in a:
s+=i
b=['2','3','1']
a in b
这样 a in b 是True 吗?
如果是True , 那就遍历a,判断a的元素都在b 里就返回True
可以考虑构建list子类,重写__contains__方法
class MyList(list):
def __contains__(self, a):
if '__iter__' in dir(a):
try:
if set(a).issubset(self): # 这里未考虑unhashable类型
return True
else:
return list.__contains__(self, a)
except:
return list.__contains__(self, a)
else:
return list.__contains__(self, a)
a = MyList(['1', '2'])
b = MyList(['1', '2', '3'])
a in b # True
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!