美文网首页
判断字符串中是否含有列表L1、L2中的元素

判断字符串中是否含有列表L1、L2中的元素

作者: Babyzpj | 来源:发表于2018-12-19 21:08 被阅读0次

    假设titleList有100w条数据,而L1、L2列表长度分别为1000,则该算法的时间复杂度为 O(1000000*1000)。
    这种方法的时间复杂度要远远优于两个嵌套的for循环。

    def getReturn(L1,L2,title):
        
        '''
        param1:
            L1、L2分别为两个长度为1000的列表
        func:
           来一条数据(str型)title,判断title里是否含有的L1、L2里的元素
        '''
        # 设置flag初始值
        flag1 = False
        flag2 = False
    
        # 循环遍历列表L1,时间复杂度O(1000)
        for word1 in set(L1):
            if word1 in title:
                flag1= True
    
        # 循环遍历列表L2,时间复杂度O(1000)
        for word2 in set(L2):
            if str(word2) in title:
                flag2=True
    
        # 判断title中同时含有列表L1、L2中的元素
        if flag1==True and flag2==True:
            return "level1"
    
        # 判断title中同时含有列表L1但是不含有L2中的元素
        elif flag1==True and flag2==False:
            return "level2"
        
        # 其它情况
        else:
            return "no"
    
    # 多条数据列表titleList
    # for title in titleList:
    #     print(title,getReturn(pwList,keyWordList,title))
    
    df_data["label"] = df_data["title"].apply(lambda title: getReturn(pwList,keyWordList,title))
    df_data
    

    相关文章

      网友评论

          本文标题:判断字符串中是否含有列表L1、L2中的元素

          本文链接:https://www.haomeiwen.com/subject/ttuskqtx.html