• python 列表、字典的方法


    # 列表最后新增元素
    1 li = [11, 22, 33]
    2 print(li)
    3 li.append(44)  # 对原列表最后增加一个元素
    4 print(li)

    执行如下:
    [11, 22, 33]
    [11, 22, 33, 44]
    # 列表清空
    li = [11, 22, 33, 44, 55]
    li.clear()   # 清空列表
    print(li)
    执行如下: []
    # 列表拷贝
    li = [22, 21, 32, 53]
    bi = li.copy()  # 拷贝一个新列表
    print(li)
    print(bi)
    

      

    执行如下:
    [22, 21, 32, 53]
    [22, 21, 32, 53]
    # 对原有列表进行扩展
    li = [23, 34, 25, 26]
    li.extend("11") # 将两个字符串扩展到列表
    print(li)



    [23, 34, 25, 26, '1', '1']

    li.extend([93]) # 扩展一个列表
    print(li)

    [23, 34, 25, 26, '1', '1', 93]

    bi = [12, 423, 231]
    li.extend(bi) # 将另一个列表扩展进来,从原列表后面添加
    print(li)

    [23, 34, 25, 26, '1', '1', 93, 12, 423, 231]

    li = list([1, 2, 3])
    print(li)
    li.extend([11, 22]) # 扩展一个列表
    print(li)
    li.extend((911, 22)) # 也可以是元组
    print(li)


    执行如下:

    [1, 2, 3]
    [1, 2, 3, 11, 22]
    [1, 2, 3, 11, 22, 911, 22]

    #  列表索引
    li = [1, 2, 3, 4, 5]
    print(li.index(5))  # 获取列表元素的下标号


    执行如下:
    4
    # 列表插入
    li = [2, 2334, 11, 33]
    li.insert(2, ("a", "b", "c"))  # 在索引2处插入一个元组
    print(li)
    
    li.insert(4, [66, 33])  # 在索引4处插入一个新列表
    print(li)
    
    li.insert(1, "cc")  # 在索引1处插入一个元素
    print(li)
    结果如下:
    [2, 2334, ('a', 'b', 'c'), 11, 33]
    [2, 2334, ('a', 'b', 'c'), 11, [66, 33], 33]
    [2, 'cc', 2334, ('a', 'b', 'c'), 11, [66, 33], 33]


    # 在移除列表元素,在消息队列中会用到
    li = [2, 2334, 11, 33]
    ret = li.pop()  # 获取剔除的值,默认删除最后的值
    print(li)
    print(ret)

    [2, 2334, 11]

    33

    ret1 = li.pop(0) # 删除该索引处的元素,并获取删除的值
    print(li)

    [2334, 11]

    print(ret1)

    2


    # 删除列表指定的值
    li = [11, 22, 11, 22, 11]
    print(li)
    li.remove(11) # 删除列表某一元素,此处非索引,如有重复只删除第一个
    print(li)

    [11, 22, 11, 22, 11]
    [22, 11, 22, 11]


    # 列表元素反转
    li = [11, 22, 33, 44, 55]
    print(li)
    li.reverse() # 反转列表元素
    print(li)
    [11, 22, 33, 44, 55]
    [55, 44, 33, 22, 11]
     
    # 统计某一元素在列表中的个数
    li = [23, 342, 22, 42, 22]
    cu = li.count(22)  # 统计某一元素在列表中的个数
    print(cu)


    2

    #列表数组排序
    li = [22, 12, 212, 13, 423]
    li.sort()
    print(li)
    [12, 13, 22, 212, 423]
     #如果需要一个排序好的副本,同时保持原有列表不变
    a =[4, 6, 2, 1, 7, 9]
    b = a[ : ]
    b.sort()
    print b #[1, 2, 4, 6, 7, 9]
    print a #[4, 6, 2, 1, 7, 9]
    #注意:b = a[:] 通过分片操作将列表a的元素全部拷贝给b,如果简单的把a赋值给b:b = a,b和a还是指向同一个列表,并没有产生新的副本

     
    字典

     1 #encoding=utf-8  
     2   
     3 print '中国'  
     4   
     5 #字典的一键多值  
     6   
     7 print'方案一 list作为dict的值 值允许重复'    
     8   
     9 d1={}  
    10 key=1  
    11 value=2  
    12 d1.setdefault(key,[]).append(value)  
    13 value=2  
    14 d1.setdefault(key,[]).append(value)  
    15   
    16 print d1  
    17   
    18 #获取值  
    19 print '方案一 获取值'  
    20 print list(d1[key])  
    21   
    22 print '方案一 删除值,会留下一个空列表'  
    23 d1[key].remove(value)  
    24 d1[key].remove(value)  
    25 print d1   
    26   
    27 print '方案一 检查是否还有一个值'  
    28 print d1.get(key,[])  
    29   
    30 print '方案二 使用子字典作为dict的值 值不允许重复'  
    31   
    32 d1={}  
    33 key=1  
    34 keyin=2  
    35 value=11  
    36 d1.setdefault(key,{})[keyin]=value  
    37 keyin=2  
    38 value=22  
    39 d1.setdefault(key,{})[keyin]=value  
    40 keyin=3  
    41 value=33  
    42 d1.setdefault(key,{})[keyin]=value  
    43   
    44 print d1  
    45   
    46 print '方案二 获取值'  
    47 print list(d1[key])  
    48   
    49 print '方案二 删除值,会留下一个空列表'  
    50 del d1[key][keyin]  
    51 keyin=2  
    52 del d1[key][keyin]  
    53 print d1  
    54   
    55 print '方案二 检查是否还有一个值'  
    56 print d1.get(key,())  
    57   
    58 print '方案三 使用set作为dict的值 值不允许重复'  
    59 d1={}  
    60 key=1  
    61 value=2  
    62 d1.setdefault(key,set()).add(value)  
    63 value=2  
    64 d1.setdefault(key,set()).add(value)  
    65 value=3  
    66 d1.setdefault(key,set()).add(value)  
    67   
    68 print d1  
    69   
    70 print '方案三 获取值'  
    71 print list(d1[key])  
    72   
    73 print '方案三 删除值,会留下一个空列表'  
    74 d1[key].remove(value)  
    75 value=2  
    76 d1[key].remove(value)  
    77 print d1   
    78   
    79 print '方案三 检查是否还有一个值'  
    80 print d1.get(key,())  

    根据上面的实例我们完成一个实验:

    如下 :

    li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    dic = {}
    将 li列表内所有数字分类,即将所有大于66的数字保存至字典的第一个KEY中,将所有小于等于66的数字保存至第二个KEY中
    {key1} 大于66 {key2} 小于等于66

    根据题目我自解的代码是:
     1 #!/usr/bin/env python3
     2 # -*-coding:utf8-*-
     3 
     4 li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
     5 dic = {}
     6 for i in li:
     7     if i > 66:
     8         dic.setdefault("k1", set()).add(i)
     9     else:
    10         dic.setdefault("k2", set()).add(i)
    11 print(dic)

    运行结果是:

    {'k2': {33, 66, 11, 44, 22, 55}, 'k1': {88, 90, 99, 77}}


    字典其它一些测试

    #!/usr/bin/env python3.5
    # -*-coding:utf8-*-
    
    # tu = (0, 2, 3, 4,)
    # tu = tuple((11, 22, 34,))
    # tu = tuple([11, 22, 33, 34])
    
    # dic = {"k1": "v1", "k2": "v2"}
    # dic = dict(k1="v1", k2="v2")
    # new_dict = dic.fromkeys(['k1', 'k2'], 'v1')  # 将这些KEY 生成一个新的字典
    # print(new_dict)
    
    # dic = {"k1": "v1", "k2": "v2"}
    # print(dic["k1"])
    # print(dic["k2"])
    # print(dic["k3"])  # 出错
    #
    # print(dic.get("k1"))
    # print(dic.get("k2"))
    # print(dic.get("k3", "alex"))  # 如果KEY不存在 会默认使用值"alex"
    #
    # dic = {"k1": "v1", "k2": "v2"}
    #
    # print(dic.keys())
    # print(dic.values())
    # print(dic.items())  # 键值对
    #
    # for k in dic.keys():
    #     print(k)
    # for v in dic.values():
    #     print(v)
    # for k, v in dic.items():
    #     print(k, v)
    
    #
    # dic = {"k1": "v1", "k2": "v2"}
    # pp_dic = dic.pop("k1")  # 必须加参数,指定一个KEY  因字典是无序的
    # print(dic)
    # print(pp_dic)
    #
    # dic.popitem()    # 随机删除一对键值
    # print(dic)
    
    # dic = {"k1": "v1", "k2": "v2"}
    # dic['k3'] =123
    # dic.setdefault('k4')
    # print(dic)    # 没什么用
    
    # dic = {"k1": "v1", "k2": "v2"}
    # ret = dic.update({"k3": 123})   #
    # print(dic)
    # print(ret)



  • 相关阅读:
    .NET实现图片切割效果(带拖放、缩放效果)
    合成艺术字二 :使用的透明类以及所用的颜色选择器JS(完整事列源码)
    Ajax.net中的Web服务
    IE6和IE7共存方法 (转)
    sql取不重复多字段
    CSS完美兼容IE6/IE7/FF的通用方法
    发布事件.net框架程序设计
    const和readonly
    CSS网站实用技巧:wordwrap同wordbreak的区别
    FCKeditor 2.1.1在ASP.NET中的设置和使用(转)
  • 原文地址:https://www.cnblogs.com/IPYQ/p/5388140.html
Copyright © 2020-2023  润新知