每日练习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)
原文地址:https://www.cnblogs.com/wenm1128/p/10763414.html