• python第三课——数据类型2


    day03:

    1.列表:list

    特点:有序的(有索引、定义和显示顺序是一致的)、可变的(既可以改变元素内容也可以自动扩容)、可重复的、

    可以存储任何的数据类型数据

    定义个列表如下:
    lt = ['宋江','李逵','鲁智深','武松','西门庆','潘金莲','时迁',['刘备','关羽','张飞']]
    1.1.如何访问列表中的元素?

    1).获取元素?

    列表名配合下标获取 --> 例如:lt[0],lt[-1]...

    2).设置元素?

    列表名配合下标 = ... --> 例如:lt[4] = "武大郎"

    1.2.列表的+和*操作:

    对于+操作而言,将两个列表对象的内容都组合起来以一个新的列表返回

    对于*操作而言,将列表中的元素重复出现n次,以新列表返回

    思考:以下带有有没有问题?

    会报错,原因是"嬴政"是一个字符串数据,字符串只能和字符串之间做拼接运算

    lt1 = lt + "嬴政"

    1.3.和列表有关的一些函数:

    append(obj):追加obj元素到列表的末尾

    clear():清空列表。元素不见了,列表对象还在

    1.4.del关键字配合列表使用

    del lt[0],lt[1] 清空列表中的某些元素,列表对象还在

    del lt 回收列表对象,列表对象不存在了

    1.5.列表的切片:

    格式和作用参照str,它们一样的...

    代码如下:

    lt5 = ['黑猫警长','猫和老鼠','熊出没','灌篮高手','海尔兄弟','柯南']
    
    lt6 = lt5[1:4]
    
    print(lt6)
    
    print(lt5)
    
    print(lt5[2:-2])
    
    print(lt5[-1:2:-1])
    
    print(lt5[::])
    
    print(lt5[::-1])
    
    # lt5[1:-2] = []
    
    lt5[:] = []
    
    print(lt5)

    1.6.列表的定义格式:

    格式1:列表名 = [值1,值2,值3...]

    格式2:列表名 = [变量1,变量2,变量3,...] = [值1,值2,值3...]

    格式3:列表名 = [值1]

    格式4:列表名 = []

    2.元祖:tuple

    特点:有序的(有索引、定义和显示顺序是一致的)、不可变的(和str一样理解)、可重复的、

    可以存储任何的数据类型数据

    2.1.如何访问元祖元素?

    1).获取元素?

    2).设置元素?

    非法操作,和str一致

    2.2.原则的+和*操作:

    对于+操作而言,将两个元祖对象的内容都组合起来以一个新的元祖返回

    对于*操作而言,将元祖中的元素重复出现n次,以新元祖返回

    思考:元祖有没有类似列表的append或者clear函数?

    没有的,因为append和clear这类的函数改变的是容器对象的内部元素内容,这和不可变冲突;

    2.3.元祖的切片操作:

    和list&str一致,参看它们即可

    代码如下:
    print(tp[:6:2])
    
    print(tp[:])

    2.4.元祖的定义格式:

    格式1:元祖名 = (值1,值2,值3...)

    格式2:元祖名 = (变量1,变量2,变量3,...) = (值1,值2,值3...)

    格式3:元祖名 = (值1,)

    格式4:元祖名 = ()

    2.5.del关键字配合列元祖使用

    注意:只能回收整个元祖对象,不能回收元素

    3.字典:dict

    特点:无序性(没有索引)、可变的数据类型(值可变、键不可变)

    字典的结构:键值对组合 --> key-value对

    键(key):唯一性(不可重复)、不可变的数据类型(list等不能作为键)

    值(value):没有任何要求,可以是任何类型数据,甚至可以重复

    3.1.如何访问字典元素?

    1).获取值?

    字典名配合键名可以得到对应的值

    2).设置值?

    字典名配合键名 = ...

    【注意事项1】

    1).在定义字典的时候如果出现了重复的键,保留键名的同时,将后者的值覆盖前者的值

    2).在添加新的键值对时,如果原字典中没有此键,那么就直接加入了

    思考:字典有+和*操作吗?

    不能支持以上的操作,是非法的,会报错...

    代码如下:
    dic2 = {"name":"韩梅梅",'age':23,'height':168.0,'name':'王五'}
    
    dic3 = {"sex":'',"address":'北京'}
    
    print(dic2 + dic3)
    
    print(dic3 * 3)

    3.2.字典的函数:

    clear():

    【注意事项2】:

    键:必须满足不可变的数据类型,例如:int、float、bool、str、tuple、None都可以充当键

    值:没有要求

    思考:可以通过值找到键吗?

    不可以,因为值可能重复,不能精确的找到唯一的键

    对于通过键找值的情况可以有以下两种方式来实现:

    方式一:如果键不存在,会报错;出现KeyError的异常

    方式二:如果键不存在,不会报错,会返回给程序一个None值,此方式比较安全/友好(更建议使用)

    print(dic2['name1']) #出现异常

    print(dic2.get('name1')) #不会出现异常,返回一个None值给程序

    3.3.del关键字配合字典使用

    既可以回收字典对象,也可以回收任何一个键值对数据

    4.集合:set

    特点:无序性(没有索引,每一次的显示不一致)、不可重复性(唯一的)、可以存放任何类型的数据、可变的

    4.1.集合的一些常用操作如下: 以下的操作都是在两个集合对象中实现的

    符号:

    &:取交集

    |:取并集

    -:取差集

    ^:先去并集再舍弃交集部分

    4.2.集合的函数:

    clear():清空集合,保留外壳

    4.3.del关键字配合集合使用

    既可以回收集合对象,也可以回收集合中的元素
  • 相关阅读:
    剔除list中相同的结构体数据
    API Gateway微服务
    Webpack vs Gulp
    客服系统
    利用 istio 来对运行在 Kubernetes 上的微服务进行管理
    微服务环境搭建
    简易的开发框架(微服务) Asp.Net Core 2.0
    Istio官方文档中文版
    Hangfire Net Core2
    IIS7性能优化
  • 原文地址:https://www.cnblogs.com/hankleo/p/10426766.html
Copyright © 2020-2023  润新知