• 5 列表和字典类型


    列表(lislt)

    有序序列  存储多个值,元素类型没有限制,支持增删改查,按索引(即下标)操作。

    格式 :list_name = [ ]  里面元素用逗号分隔开

    PS:

      user_info = ['tony,28,176]

    基本操作

     1 #!/usr/bin/env python3 
     2 # _*_ coding:utf-8 _*_
     3 # @Time    : 2017/08/31
     4 # @Author  : tony
     5 # @File    : list_pracitce  
     6 # @Version : 1.0
     7 
     8 
     9 
    10 girls = ['alex','wpq',['egon','ysb']]
    11 
    12 # 查询
    13 print(girls[2])             # ['egon','ysb']
    14 print(girls[2][0])          # 'egon'
    15 
    16 
    17 # 增加
    18 
    19 girls.append('oldboy')      # 追加到最后
    20 print(girls)        # ['alex','wpq',['egon','ysb'],'oldboy']
    21 
    22 
    23 # del 
    24 
    25 girls.remove('wpq')  # 指定一个元素
    26 print(girls)         # ['alex', ['egon', 'ysb'], 'oldboy']
    27 
    28 del girls[1]        # del 删掉指定的元素索引
    29 
    30 ret = girls.pop()    # 随机弹出一个元素,也可以指定下标,返回被删的值,
    31 print(ret)
    32 
    33 
    34 #
    35 
    36 girls = ['alex','wpq',['egon','ysb']]
    37 
    38 girls[0] = 'alex_SB'  # 通过下标直接赋新值
    39 print(girls)        # ['alex_SB', 'wpq', ['egon', 'ysb']]

    常用方法

    ####################################################################
    #                                                                  #
    #                       常用方法                                   #
    #                                                                  #
    ####################################################################
    
    l = ['a','b','c','d','e','f']
    
    print(type(l))      # <class 'list'>
    
    # 索引
    
    print(l.index('d'))   # 返回元素的索引
    print(l.count('d'))   # 统计元素的个数
    
    
    # 切片
    
    print(l[0])         # a
    print(l[1:5])       # b,c,d,e  顾头不顾尾
    print(l[1:5:2])     # b,d
    print(l[-1])        # f
    
    
    
    # 长度
    
    print(len(l))   #   元素的个数,也就是list 的长度
    
    
    
    # 成员测试 in ,return bool 
    
    
    print('c' in l)     # True
    print('y' in l)     # False
    
    
    # 插入 (指索引定位置插入)
    
    
    l.insert(1,'x')     # 指定一个索引
    print(l)            # ['a', 'x', 'b', 'c', 'd', 'e', 'f']
    
    l.insert(2,['','','插入','list'])
    print(l)            # ['a', 'x', ['也', '可', '插入', 'list'], 'b', 'c', 'd', 'e', 'f']
    
    
    
    # 可以一次插入多个元素,仅追加,
    
    l.extend(['x','y','z'])   # 一次插几个元素,用list包起来,追加到最后,类似扩展
    print(l)                  # ['a', 'x', ['也', '可', '插入', 'list'], 'b', 'c', 'd', 'e', 'f', 'x', 'y', 'z']
    
    
    # clear
    
    #l.clear()
    print(l)        # []  空了
    
    
    # copy 复制
    
    l2 = l.copy()
    print(l2)               # 数据一样
    
    
    # 排序  倒序,正序 (大 -- 小)
    
    l3 = [1,2,3,4,5,6,7,8]
    l3.reverse()            # 改变原来的顺寻
    print(l3)               # [8, 7, 6, 5, 4, 3, 2, 1]
    
    #l3.sort()               # 从大到小排列
    print(l3)               # [1, 2, 3, 4, 5, 6, 7, 8]
    
    l4 = sorted(l3)         # Built-in function sorted 
    print(l4)
    View Code

     字典 (dict)

      

    用途:存多个值,这一点与列表相同,值可以是任意数据类型,存在里面的数据是无序的

    特征:每一个值都一个唯一个对应关系,即key,强调一点,key必须是不可变类型

    格式:定义在{ },逗号分割,每一个元素的形式都是key:value

    PS:

        user_info = { 'name' : 'tony' , 'age' : 28, 'mail ' : ['**qq.com','**163.com','**sina.com'] }

    基本操作

     1 #############################################################
     2 #
     3 #               dict   是个无序的序列
     4 #
     5 
     6 
     7 city_info = {'山东':'','北京':'','上海':''}
     8 
     9 # 查看
    10 print('#'*30)
      msg_dict = {'name':'tony','age':28,'sex':'male'}
    11 ret = msg_dict.get('tel','Sorry not fond')   # get 获取字典的key,要用一个变量来接收值,有则返回,无默认None ,也可自定提示 12 print(ret)             # Sorry not fond 13 print(city_info['山东']) # 14 15 for k,v in city_info.items(): # dict.items() 含有 key vaule 16 print(k,v) # 因为无序,指不定那个优先 17 18 19 # 曾加 20 print('#'*30) 21 22 city_info['天津'] = '' 23 24 for k,v in city_info.items(): # dict.items() 含有 key vaule 25 print(k,v) # 因为无序,指不定那个优先 26 27 28 29 # 删除 30 print('#'*30) 31 32 del city_info['上海'] 33 34 for k,v in city_info.items(): # dict.items() 含有 key vaule 35 print(k,v) # 因为无序,指不定那个优先

     常用方法:

      

      1 #############################################################
      2 #
      3 #               dict  常用方法 
      4 #
      5 #############################################################
      6 
      7 
      8 # msg
      9 msg = ['tony',28,'male']
     10 msg_dict = {'name':'tony','age':28,'sex':'male'}
     11 
     12 
     13 
     14 # 存/取
     15 
     16 #print(msg_dict['TEL'])      # 没有的 Key 不要瞎弄 KeyError: 'TEL' 
     17 
     18 print(msg_dict.get('name',None))        # 有就返回,tony 没有默认返回None 
     19 print(msg_dict.get('TEL','Not find'))    # 么有找,return Not find 
     20 
     21 msg_dict['TEL'] = 185       # 增加值 
     22 print(msg_dict)     # 无序 {'age': 28, 'name': 'tony', 'TEL': 185, 'sex': 'male'}
     23 
     24 
     25 
     26 
     27 # 删除
     28 
     29 #print(msg_dict.pop('TEL',None))  # pop:key存在则弹出值,不存在则返回默认值,如果没有默认值则报错
     30 
     31 #print(msg_dict.popitem())       # 随机删一个 key ,vaule 
     32 
     33 
     34 # 键值对
     35 
     36 
     37 print(msg_dict.keys())          # dict_keys(['TEL', 'sex', 'age', 'name'])    
     38 print(msg_dict.values())        # dict_values([28, 185, 'tony', 'male'])
     39 print(msg_dict.items())         # dict_items([('name', 'tony'), ('sex', 'male'), ('TEL', 185), ('age', 28)])
     40 
     41 print(type(msg_dict.values()))  # <class 'dict_values'>
     42 
     43 
     44 
     45 
     46 
     47 #      循环
     48 
     49 
     50 print('*'*30)           # 演示效果
     51 for k in msg_dict.keys():
     52     print(k)            # all key 
     53     print(k,msg_dict[k])    # all values
     54 
     55 
     56 
     57 print('*'*30)
     58 for k in msg_dict.values():
     59     print(k)            # all values
     60 
     61 
     62 
     63 
     64 print('*'*30)
     65 for k,v in msg_dict.items():
     66     print(k,v)       # all key and values
     67 
     68 
     69 
     70 # 长度
     71 
     72 print(len(msg_dict))        # 4
     73 
     74 # 成员测试
     75 
     76 print('name' in msg_dict)          # test key, return bool
     77 print('name' in msg_dict.keys())   # test key, return bool
     78 print('tony' in msg_dict.values()) # test values return bool
     79 print(('name','tony') in msg_dict.items()) # test items return bool
     80 
     81 
     82 
     83 # update 没有的 key 直接添加, 存在的,更新新值
     84 
     85 msg_dict.update({'a':1,'name':'Tony'})      # 存在的更新,不存在的添加
     86 
     87 print(msg_dict)     # {'age': 28, 'TEL': 185, 'name': 'Tony', 'a': 1, 'sex': 'male'}
     88 
     89 # setdefault:key不存在则设置默认值,并且放回值默认值
     90 # key存在则不设置默认,并且返回已经有的值
     91 
     92 ret = msg_dict.setdefault('name')       # 有货直接返回
     93 print(ret)                              # return tony
     94 
     95 ret = msg_dict.setdefault('tel')        # 没有货,返回None
     96 print(ret)                              # None
     97 
     98 msg_dict.setdefault('hobbies',[]).append('study')       # 明知道没有也可直接添加
     99 print(msg_dict)         # {'TEL': 185, 'tel': None, 'sex': 'male', 'hobbies': ['study'], 'a': 1, 'name': 'Tony', 'age': 28}
    100 
    101 msg_dict.setdefault('hobbies',[]).append('read')        # 指定添加
    102 msg_dict.setdefault('hobbies',[]).append('sleep')       # 指定添加
    103 
    104 print(msg_dict)        # {'hobbies': ['study', 'read', 'sleep'], 'TEL': 185, 'name': 'Tony', 'tel': None, 'age': 28, 'sex': 'male', 'a': 1}
    105 
    106 
    107 # copy 复制  
    108 
    109 d = msg_dict.copy()
    110 print(d)            # 元素一样,顺序不一样,{'a': 1, 'hobbies': ['study', 'read', 'sleep'], 'age': 28, 'TEL': 185, 'sex': 'male', 'name': 'Tony', 'tel': None}
    111 
    112 
    113 
    114 # 快速批量创建字典
    115 
    116 d1 = msg_dict.fromkeys(('name','age','sex'),None)       # 批量创建的key 要用元组包起来,values 默认用同一个None 
    117 print(d1)                                               # {'sex': None, 'name': None, 'age': None} 
    118 
    119 d2 =d1.fromkeys(('name','age','sex'),('tony',28,'male')) # 批量创建 key values ,前提有一个字典,用它的fromkeys方法
    120 print(d2)    # kye 的值为同一个,值可以是一个序列,这里用的是 tuple      {'name': ('tony', 28, 'male'), 'age': ('tony', 28, 'male'), 'sex': ('tony', 28, 'male')} 
    121 
    122 
    123 
    124 
    125 # 其他创建字典的方法
    126 
    127 info = dict(name = 'tony',age=28,sex='male')        # { } 内部就是这样实现的
    128 
    129 print(info)     # {'age': 28, 'sex': 'male', 'name': 'tony'}
    130 
    131 
    132 info1 = dict([('name','tony'),('age',28)])      # list 包起来 元组 ,估计内部应该是 for 循环 然后在配对 , 呵呵 瞎猜的 。助理解就行
    133 
    134 print(info1)        #  {'name': 'tony', 'age': 28}
    View Code
  • 相关阅读:
    GridView多行表头合并
    Android开发一 什么是3G
    SQL 日期格式 问题
    ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
    服务器维护:FTP无法连接
    Android开发之旅:应用程序基础及组件
    Failed to create the Java Virtual Machine
    Android开发七 Android中的显示单位
    Excel 数据有效性,怎么提示指定的命名区域不存在?
    Android开发三 如何安装 Android SDK 和Eclipse 插件
  • 原文地址:https://www.cnblogs.com/liushubao/p/7457737.html
Copyright © 2020-2023  润新知