请问怎样才能让a in b得出True


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
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632