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的内容不会发生任何改变。

  • 相关阅读:
    httpcontext in asp.net unit test
    initialize or clean up your unittest within .net unit test
    Load a script file in sencha, supports both asynchronous and synchronous approaches
    classes system in sencha touch
    ASP.NET MVC got 405 error on HTTP DELETE request
    how to run demo city bars using sencha architect
    sencha touch mvc
    sencha touch json store
    sencha touch jsonp
    51Nod 1344:走格子(贪心)
  • 原文地址:https://www.cnblogs.com/yulianggo/p/9193450.html
Copyright © 2011-2022 走看看