美文网首页
2021-03-14锦学长之50题

2021-03-14锦学长之50题

作者: Cipolee | 来源:发表于2021-03-15 20:00 被阅读0次

    NO.47xml or html的解析

    ?懒惰匹配+(*相当于+,但在匹配字符时比+更好)+()

    import re
    regex=re.compile(r'<(.*?)>(.*?)</.*?>')
    t=regex.findall('<哈哈>who are you</>\n<嘿嘿>you are lost</>')
    def my_print(t):
        for i in t:
    #attention i是元组
            print("{}:{}".format(i[0],i[1]))
    my_print(t)
    

    NO.48 方差计算公式

    def caculate_variance(tu):
        sum_=sum(tu)
        ave_=round(sum_/len(tu),2)
        variance=0
        for i in tu:
            variance+=(i-ave_)**2
        return variance/len(tu)
    tu=(1,2,0,0)
    caculate_variance(tu)
    

    NO.49两个字典中相同的键

    dict_1={1:'2',2:'3'}
    dict_2={'A':"d",'C':"2",2:'1'}
    def same_key(dict1,dict2):
        dict_list=[]
        for i in dict1:
            if i in dict2:
                dict_list.append(i)
        return dict_list
    

    NO.50 字典的item操作,可以使用item in dict.items()中的item[1]和item[0]表示值和键,同时isinstance(object,type)
    例如
    isinstance(item_[0],type(item[0]))的效果
    与type(item_[0])==type(item[0])类似,但isinstance具有继承的意思,type 加“==”的判断更加严谨

    dict_1={1:'2',2:'3',3:"2",'T':"2"}
    dict_2={'A':"d",'C':"2",2:'1'}
    def same_key(dict1,dict2):
        dict_list=[]
        for item in dict1.items():
            for item_ in dict2.items():
                print(item[0],item_[0])
                if item[1]==item_[1] and isinstance(item_[0],type(item[0])) :
                    print("run here")
                    i=[]
                    i.append(item[0])
                    i.append(item_[0])
                    dict_list.append(i)
        return dict_list
    same_key(dict_1,dict_2)
    

    NO.51 sorted是可以对字符串列表进行排序的

    字典排序的两种方式

    dict1={}
    dict2={}
    def input_(dict1,dict2):
        n=int(input("请输入员工个数"))
        for i in range(n):
            name=input("请输入该员工名字")
            num=input("请输入该员工编号")
            dict1[name]=num
            dict2[num]=name
    def response():
        input_(dict1,dict2)
        i=int(input(r'''请输入相关信号
        1:表示按照姓名排序,2:表示按照编号排序,3:表示退出'''))
        if i==1:
            #list_dict=zip(dict1.keys(),dict1.values())
            #list_dict=[k for k in list_dict]
            for j in sorted(dict1):
                print(j," ",dict1[j])
        elif i==2:
            list_dict=zip(dict2.keys(),dict2.values())
            list_dict=[k for k in list_dict]
            print(type(list_dict))
            print(list_dict)
            t=sorted(list_dict,key=lambda x:x[0])
            print(t)
            for j in t:
                print(j[0],' ',j[1])
        else:
            pass
    response()
    
    字符串比大小的原理是看第一个谁大,与数字比较的原理不同
    

    dict_test={1:'b',9:'c',8:'a'},sorted(dict_test)

    [1, 8, 9]
    字典是可以进行排序的,设置两个字典,可以实现根据键排序,输出整个item,或者根据值排序,输出整个item

    NO.52 用整数的随机数比小数的要好

    format遇见的问题是当长度大于宽度时,将会按原来的长度输出

    import random
    def my_print(ans):
        i=0
        while(i+10<len(ans)):
            for j in range(10):
                print("{:>5}".format(ans[i+j]),end='')
            print()
            i+=10
        while i<len(ans):
            print("{:>5}".format(ans[i]),end='')
            i+=1
    def random_list(list1,list2):
        for i in range(205):
            #list1.append(random.random()*500)
            #list2.append(random.random()*500)
            list1.append(random.randint(0,501))
            list2.append(random.randint(0,501))
    def seek_same(list1,list2):
        ans=[]
        for i in list1:
            if i in list2:
                ans.append(i)
        my_print(ans)
    def seek_deference(list1,list2):
        ans=[]
        for i in list1:
            if i not in list2:
                ans.append(i)
        my_print(ans)
    l1,l2=[],[]
    random_list(l1,l2)
    seek_same(l1,l2)
    print("********element*******")
    seek_deference(l1,l2)
    

    PTA刷题经验,print不要自己输出,一定要用复制+format格式化输出

    相关文章

      网友评论

          本文标题:2021-03-14锦学长之50题

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