zoukankan      html  css  js  c++  java
  • 每日练习0424---函数和列表 元祖 字典的习题 sort和sorted总结

    18、要求实现一函数,该函数用于求两个集合的差集,结果集合中包含所有属于第一个集合但不属于第二个集合的元素

    def diff_set(s1,s2):
    
        diff_list=[]
        for i in s1:
            if i not in s2: #遍历s1,判断是否在s2中,若不在添加到新的列表中
                diff_list.append(i)
        return set(diff_list)
    
    
    
    print(diff_set({1,2,5,9},{2,3,5}))

    #19、找出一段句子中最长的单词及其索引位置,以list返回  

    描述 
    sorted() 函数对所有可迭代的对象进行排序操作。 
    sort 与 sorted 区别: 
    sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 
    list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

    语法
    sorted 语法:
    sorted(iterable[, cmp[, key[, reverse]]])
    参数说明:
    iterable -- 可迭代对象。
    cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

    s = "i am a good boy,huhongqiang!"
    def find_max_length(s):
        import string
        for c in s:
            if c in string.punctuation: #如果字符是标点符号的话就将其替换为空格
                s =s.replace(c," ")
        #print(s)
    #对切割后的字符串按长度降序排列,按坐标是第一个的赋值为最大长度的单词 max_length_word
    = sorted(s.split(),key=len,reverse=True)[0] max_length_word_index = 0 max_length = len(max_length_word)
    #找到最大长度单词的坐标
    for i in range(len(ss)): if ss[i:i+max_length] == max_length_word: max_length_word_index = i return max_length_word,max_length_word_index print("最长的单词是%s,索引位置是%d" %find_max_length(s))

    #20、返回序列中的最大数

    思路:python中序列类型:主要包括字符串、列表和元组等,所以先判断传入的数据类型,然后遍历找最大值

    import sys
    def get_max_num(s):
    
        if not isinstance(s,(str,list,tuple)):
            print("参数传入错误!")
            sys.exit(1)
    #sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。 max_num
    =float(s[0]) if isinstance(s,(list,tuple)): for i in s: if i>max_num: max_num=i else: for i in s: if float(i)>max_num: max_num =float(i) return max_num print(get_max_num([1,5,90])) print(get_max_num("123456")) print(get_max_num((5,4,3,23,67)))

    #21习题1:把一个字典的 key,value互换

    d={"a":1,"b":2}
    dict_list={}
    for k,v in d.items():
        dict_list[v]=k #将原字典的key和values互换放到一个新的字典里
    
    print(dict_list)
            

    C:Usersdell>py -3 C:UsersdellDesktop练习420190424.py
    {1: 'a', 2: 'b'}

    #22习题2:统计列表中列表的数量

    s_list=[[1,2,3],4,5,[6,7,8,9]]
    list_num=0
    for i in s_list:
        if isinstance(i,list):
            list_num +=1
    
    print("列表中列表的数量为: %s" %list_num)

    C:Usersdell>py -3 C:UsersdellDesktop练习420190424.py
    列表中列表的数量为: 2

    #23习题3:删除一个列表里面所有的4

    s = [2,4,4,[0,4,2],"bn4",(4,4,3),{"a":4,"b":5,4:3}]
    s_list = []
    for i in range(s.count(4)):
        s.remove(4)
    for j in s:
        if isinstance(j,(int,float)):
            s_list.append(j)
    
    for k in s:
        if isinstance(k,list):
            new_list=[]
            for j in k:
                if j!=4:
                    new_list.append(j)
            s_list.append(new_list)
        if isinstance(k,str):
            new_string =""
            for v in k:
                if v!='4':
                    new_string+=v
            s_list.append(new_string)
        elif isinstance(k,set):
            new_set =set()
            s_list1=[]
            for m in k:
                if m!=4:
                    s_list1.append(m)
            new_set=set(s_list1)
            s_list.append(new_set)
        elif isinstance(k,tuple):
            new_tuple =()
            s_list1=[]
            for n in k:
                if n!=4:
                    s_list1.append(n)
            new_tuple=tuple(s_list1)
            s_list.append(new_tuple)
        elif isinstance(k,dict):
            new_dict ={}
            for key,value in k.items():
                if not (key==4 or value == 4 or key == '4' or value =='4'):
                    new_dict[key]=value
            s_list.append(new_dict)
    
    
    print(s_list)
  • 相关阅读:
    函数
    大对象数据LOB
    【缓冲流、转换流、序列化流】
    【字节流、字符流】
    【File类、递归】
    【缓冲流、转换流、序列化流】
    vee-validate的使用
    微信小程序第三方授权登录
    新电脑搭建vue项目步凑
    移动端300ms延迟问题和点击穿透问题
  • 原文地址:https://www.cnblogs.com/wenm1128/p/10763414.html
Copyright © 2011-2022 走看看