zoukankan      html  css  js  c++  java
  • python0.7-----元组和字典

    元组:不可变的列表

    优点:安全,对于数据的定义,能用元组就用元组,因为它不可变。

    创建空的元组:

    tuple1=()

    创建带有不同类型元素的元组:

    tuple2=(1,1.1,’good’,true,None,(1,2,3),[1,2,3,4],{1:2,3:4})

    创建只有一个元素的元祖

    tuple3=(1,)    记住:一定要叫上这个逗号,不然系统会认为tuple3是整数类型

    增:

    无,因为元组不可变

    删:

    del tuple3

    改:

    元组元素是不能被修改的,但若元组的元素是列表或者字典,由于这两种类型存在元组里面的是地址,因此只要不改变放在元组里面的列表或者字典的地址,而改变里列表或者字典的元素,对于元组列说,其元素是没有修改的。因此,对于元组的列表元素或者字典元素,是可以修改的。

    记住:只能修改列表的元素。如果修改整个列表,列表的引用就会发生变化,那么元组里面的列表地址就会发生变化,就会发生错误。

    例如:

    list1=[123,123,111]

    print(id(list1))

    list1[0]=1  #只修改列表元素,列表的地址没有发生改变

    print(id(list1))

    list1=[11,11] #这是在修改列表的引用,会开辟新的内存空间,引用的列表地址会发生变化

    print(id(list1))

    查:

    格式:元组名[下标]  

    记住:下标不可以越界

    下标可以是负数:例如:元组tuple3的长度为5,那么tuple3[-1]表示最后一个元素,tuple[-2]表示倒数第二个,tuple[-5]表示第一个元素

    例如:tuple2[4] 查得None

    对元组的操作:

    例如:

    t1=(1,2,3)

    t2=(4,5,6)

    元组的连接:t1+t3  得到一个元组:(2,2,3,4,5,6)

    元组的重复:t1*3   得到一个元组:(1,2,3,1,2,3,1,2,3)

    判断元素是否在元组中:  元素1 in 元组名1  若元素1存在于元组1,则返回True,否则返回False

    元组的截取:

    格式:元组名[[start]:[end]] :截取元组下标[start,end)里面的子元组

     

    二维元组:

    t1=((1,2),(3,4),(5,6),(7,8))  访问t1[下标][下标]

     

    元组的方法:

    len(元组名):返回元组中元素的个数

    max(元组名):返回元组中的最大值

    min(元组名):返回元组中的最小值

    tuple(列表名):将列表转化为元组

     

     

    字典:

    概述:使用键值(key-value)存储,具有极快的查找和插入和删除速度。不像列表,列表的元素越多,查找速度就越慢,而字典跟元素的数量无关。但是字典相比较列表,字典要多消耗内存存储key。字典是无序的,不能用下标查找,例如dict[index]就是错误的访问方法,应该是dict[key]。

    字典的形式:

    dict1={key1:value1,key2:value2}

    key的特性:

    一:字典中的key必须唯一。

    二:key必须是不可变的对象。例如字符串,整数,元组可作为key。list可变,不能作为key。

    增,改:

    dict1[key]=value :在dict1中添加key:value,如果key存在,则覆盖原来存在的key-value,其实就是修改key对应的value的值。

    删:

    dict1.pop(key):删除key对应的key-value。

    查:

    格式: 字典名[key]

    当key不存在时,这种方式的访问就会报错。

    dict1.get(key)也是访问字典dict1的key对应的value,但是如果key不存在,返回None。

    dict1.value():返回一个列表,列表的内容为所有的value值。

    dict1.items():将字典转变成为列表,列表的元素是元组,元组的形式为:(key,value)。

    遍历字典:

    一:遍历key

    for key in dict1:

      print(key,dict[key])

    二:遍历value

    for value in dict1.value():

      print(value)

    三:遍历key-value

    for key,value in dict1.items():

      print(key,value)

     

    enumerate(dict1):将dict1中每个key用数字0,1,2,3......依此代替。改变成:0:value1,1:value2,....,n:valuen的形式。注意,该函数返回的类型为enumerate类型,只能用用for循环以遍历的形式查找其元素。并且dict1的内容不会发生任何改变。

    enumerate(list1):依此在list1元素前面加上数字0,1,2,3,......。该函数返回的类型为enumerate类型,只能用用for循环以遍历的形式查找其元素。并且list1的内容不会发生任何改变。

  • 相关阅读:
    Android开发——弹性滑动的两种实现方式
    管理知识和解决信息爆炸问题的4种方法
    京东金融的业务版图
    京东金融的业务版图
    虚幻引擎4艺术大师
    Android开发——View滑动的三种实现方式
    Android开发之Path类使用详解,自绘各种各样的图形!
    C# Dictionary的遍历理解
    我想走全产业链发展路线
    Androd安全——混淆技术完全解析
  • 原文地址:https://www.cnblogs.com/yulianggo/p/9193450.html
Copyright © 2011-2022 走看看