每日练习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:\Users\dell>py -3 C:\Users\dell\Desktop\练习\4\20190424.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:\Users\dell>py -3 C:\Users\dell\Desktop\练习\4\20190424.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

时间: 2024-12-28 18:01:01

每日练习0424---函数和列表 元祖 字典的习题 sort和sorted总结的相关文章

字符串 数字 列表 元祖 字典 的不同分类and集合的概念

可变不可变 1.可变:列表 字典 2.不可变:字符串 数字 元祖 访问顺序: 1.顺序访问:字符串 列表 元祖 2.映射:字典 3.直接访问:数字 存放元素个数: 容器类型:列表 元祖 字典 原子:数字 字符串 id(变量名)可以查出储存的位置 s={1,2,3,3,9,8,8} print(id(s)) 41383080 集合(set): 1.不同元素组成 2.无序 3.集合中元素必须是不可变类型 例如: s={1,2,3,3,9,8,8} print(type(s)) 输出 <class '

python学习day-3 列表 元祖 字典

一.列表list a.基础 1. li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] 中括号括起来:,分割每个元素:列表中的元素可以是数字,字符串,列表,布尔值......:列表可以嵌套 (他就是个集合,内部放置任何东西) 2.可以进行索引,切片取值 li = [1, 12, 9, "age", ["

python,列表/元祖/字典

1.格式 li=[1,2,3,'a','b','c']#list列表 tu=(1,2,3,'a','b','c',)#tuple元祖 info={ 'k1':'v1', 'k2':'v2' }#字典,键值对key/value,其中vaule可以是任意值#列表.字典.bool不能做key,元祖.数字可以 2.键值对函数 info.items( ) 3.字典常用函数 1 dic1=info.fromkeys(['k1','k2'],99) 2 #根据序列创建字典,指定统一value 3 print(

python 高级数据类型(列表 元祖 字典 字符串)

高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True 非 0 数 -- 非零即真 假 False 0 复数型 (complex) 主要用于科学计算,例如:平面场问题.波动问题.电感电容等问题 非数字型 字符串 列表 元组 字典 在 Python 中,所有 非数字型变量 都支持以下特点: 都是一个 序列 sequence,也可以理解为 容

2.17 python入门到精通 3.3- 4 列表 元祖

1 1 # 3.3.1 使用方法sort() 对列表进行永久性排序 2 2 # 与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True .下面的示例将汽车列表按与字母顺序相反的顺序排列: 3 3 cars = ['bmw', 'audi', 'toyota', 'subaru'] 4 4 cars.sort(reverse=True)#reversen. 背面:相反:倒退:失败 adj. 反面的:颠倒的:反身的 5 5 print(cars) 6 6 p

python----基础之数据类型(元祖,字典,集合)

元祖 元祖的定义和特性 定义:列表已经介绍过,现在介绍一种与类表相似的类型,叫做元祖,只不过把[]改成(). 特性: 1.可以存放多个指 2.不可变 3.按照从左往右的顺序定义元祖的元素,下标从0开始依次顺序访问,有序 元祖的创建与常用类型 1 # 创建 2 >>> we = (11, 22, 33, 44, 55) 3 >>> we 4 (11, 22, 33, 44, 55) 5 >>> type(we) 6 <class 'tuple'&g

元祖&amp;字典

#什么是元祖:元祖是一个不可变的列表(没有改的需求) #======================================基本使用======================================#1.用途:用于存放多个值,当存放的多个值只有读的需求 没有改的需求时用元祖最合适 #2.定义方式:在()内用,分割开多个任意类型的值t=(1,3.1,'aaa',(1,2,3),['a','b'])t=tuple(...)res=tuple('hello')res=tuple(['

第四篇、编码与解码及列表元祖

一.解码与编码 Def decode(self,encoding-None,errors=None): ""解码 s.decode([encoding[,errors]) →object Def encode(self,encoding=None,errors=None): """编码 针对unicode 代码如下: 中文是gbk >>> '无' '\xce\xde' >>> str1 ='\xce\xde' >&

python,看看有没有你需要的列表元祖和range知识!

列表--list 列表:列表是python的基础数据类型之一,存储多种数据类型 可变 支持索引 可切片 方便取值 li = ['alex',123,Ture,(1,2,3,'wusir'),[1,2,3,'小明',]] 定义列表:lst=["Alex",123,True]用,逗号分隔是一个元素 Id 获取对象的内存地址 lst=[] print(lst[0]) print(id(lst[0])) 列表的索引 lst = ['刘德华','周润发','周杰伦','向华强'] print(l