zoukankan      html  css  js  c++  java
  • 列表的操作和字典的访问

      一.列表的三种浅拷贝

    列表中的元素可以是不同类型的元素,区别与c语言的数组

      1. list(列表对象)
      2. list_new_name=list_name[ :]
      3. copy.copy(列表对象)#适应于其他对象
      • 补充:  for index,value  in  enumerate(列表对象)#函数的返回值是元组(index,value)

      二.深层拷贝

    copy.deepcopy(拷贝对象)

    三.变相的加密方法

    p=str.maketrans(加密前的元素,对应的加密后的元素)#str是字符串库,这是转换的方法

    字符串实例.translate(p)#p是对应的法则

    p = str.maketrans("12345","abcde")
    str_name = "234876"
    print(str_name.translate(p))

    四.访问字典的两种方法(建议用第一种)

      1. for   i in dict实例:相当于迭代器

                    print(i,dict[i])

           2. for  key,value  in  dict实例.item():

                   print(key,value)

    五.创建一个字典的方法

      dict.formkeys(列表,值)#列表中的元素作为字典的下标,每一键对应的值是后一个形参

      无论值是不是一个复杂类型

    list  =  ["name","age"]
    dict _name = dict.formkeys(list,['alex',23])
    print(dict _name)

      实际应用 dict.formkeys(列表,none)同时默认也是none

    六.检测是否会有重叠的键,没有则创建,有则更新

      字典对象.update(另一个字典对象),也是在字典中同时添加多个元素

     补充:

    1.exit()#用于退出整个程序,里面可以带字符串,作为退出程序的说明

    2.变量赋值

    a = 1
    b=a 
    a=2
    print(a,b)

        内存会为1划分一块空间,a将获得该地址,b=a是将1的地址同意发给b,重新为a

       是在内存为2重新划分一块空间,a将指向这个地址,而b不会改变

     3.列表方法的总结

       查:

            通过索引(下标)

             .count(元素内容)   查询该元素在列表出现的次数

            .index(元素内容)   查询该元素在列表出现的下标,但若有相同的该元素,则取第一个

       获取第二个该元素的方法,先获取第一个 在切片,在获取

    long_list = [1,2,3,5,2,6,8]
    first_in  =long_list. index(2)
    son_list = long_list[first_in+1:]
    sec_in = son_list.index(2)
    aim = long_list[firt_in+sec_in+1]

          元素内容   in   list   查询该元素是否在该列表中,也可以通过count函数

    增:

          a.append()  追加

         a.insert(index,内容)  插入

          a.extend(list)  添加一个列表

     修改:

           a[index] = 新值

            a[staret:end] = [新列表]

    删除:

            a.pop(index)  删除并返回该要删除的值,不加参数,默认返回最后一个

            a.remove(内容)

             del a,del a[index]

            a.clear()清空

    排序:

            a.sort()升序/a.sort(reverse=True)降序

           

            a.reverse()

    4.字典的方法总结

       #a是一个字典,key唯一,无序

    键不能是不可哈希的数据,值可以为任意的值,有有两个键相同,取出来的是第一个

       增:

            a['name'] = 'alex'

           a=dict((('name','alex'),))#创建一个新的字典,空字典{}

           a.update(b)#b是另一个字典,若有相同则更新,没有则创建

            a.setdafaout('age'=23)设置默认值

            a.formkeys(["name","age"],[1,2,3])#该函数只有两个参数,第一个参数是由keys组成的列表,第二个参数是每一个key的value,用于初始化,但值最好不能是可变类型,是浅拷贝

    如:a['name'][1]= 0

     删:

         del   a['name']   #将整个键值对都删除了

          del a #删除了整个字典

         value = a.popitem('name')   #删除该键值对,并返回该键对应的值,没有参数则随机删除

        a.remove()

       a.clear()#清空字典

    改:

        a['name'] = new_value

    查:

        key in a  #若该键在a中返回true

    a =   {'name':'alex','age':24}
    for key in a:#key是一个形参
         print(key,a[key])#最高效
    

      不高效,不推荐

    for keys,values in a.items():#keys,values是形参,items先返回一个列表,占空间
         print(keys,values)

    排序:

            sorted(a)   sorted(a.items())    sorted(a.keys())  均是以key的值进行排序

             sorted(a.values())  以值排序

           

  • 相关阅读:
    PHP 函数
    MariaDB——(三) MariaDB 10.0.15 standard replication主从复制搭建
    MariaDB——(二) MariaDB 10.0.15 日志文件—undo 日志
    MariaDB——(一)CentOS 6.5 下 MariaDB 10.0.15 YUM 安装
    虚拟机中的linux系统文件突然全部变成只读的问题
    复制虚拟机vmware centos搭建集群节点过程中网络配置eth0和eth1遇到的问题以及NAT模式下虚拟机静态IP配置方法
    WMware 中CentOS系统Hadoop 分布式环境搭建(一)——Hadoop安装环境准备
    关于Oracle字符集在dmp文件导入导出中的乱码影响
    VMware 打开虚拟机的时候提示 internal error 内部错误 遇到这个问题时我的解决方法
    ORACLE 存储过程中保存用户自定义异常信息的一种方式
  • 原文地址:https://www.cnblogs.com/gjx1212/p/11539528.html
Copyright © 2011-2022 走看看