zoukankan      html  css  js  c++  java
  • day12—列表、元组、字典基本语法

    一、list类中提供的方法

    **********************灰魔法**************************

    1. 原来值最后追加 append()

    li = [11, 22, 33, 22, 44]
    li.append(5)
    li.append("alex")
    li.append([1234,2323])
    print(li)       # [11, 22, 33, 22, 44, 5, 'alex', [1234, 2323]]

    2. 清空列表 clear()

    li = [11, 22, 33, 22, 44]
    li.clear()
    print(li)       # []

    3. 计算元素出现的次数 count()

    li = [1,2,2,3,42,3,2]
    v = li.count(2)
    print(v)     # 3

    4. 扩展原列表,参数:可迭代对象 append(), extend()

    li = [11, 22, 33, 22, 44]
    li.append([9898,"不得了"])
    print(li)     # [11, 22, 33, 22, 44, [9898, '不得了']]
    li = [11, 22, 33, 22, 44]
    li.extend([9898,"不得了"])
    print(li)     # [11, 22, 33, 22, 44, 9898, '不得了']

    5. 根据值获取当前值索引位置(左边优先)index()

    li = [11, 22, 33, 22, 44]
    v= li.index(22)
    print(v)     # 1

    6. 在指定索引位置插入元素 insert()

    li = [11, 22, 33, 22, 44]
    li.insert(0,99)
    print(li)     # [99, 11, 22, 33, 22, 44]

    7. 删除某个值(1.指定索引;2. 默认最后一个),并获取删除的值 pop()

    li = [11, 22, 33, 22, 44]
    # v = li.pop()
    # print(li)     # [11, 22, 33, 22]
    v = li.pop(2)
    print(li)       #[11, 22, 22, 44]

    8. 删除列表中的指定值,左边优先 remove()

    li = [11, 22, 33, 22, 44]
    li.remove(22)
    print(li)     # [11, 33, 22, 44]

    9. 将当前列表进行翻转 reverse()

    li = [11, 22, 33, 22, 44]
    li.reverse()
    print(li)     # [44, 22, 33, 22, 11]

    10. 列表的排序(默认为 False) sort()

    li = [11, 44, 22, 33, 22]
    li.sort()
    li.sort(reverse=True)
    print(li)     # [44, 33, 22, 22, 11]

     

    *************************深灰魔法**************************

    1. 索引取值
    print( li [3] )


    2. 切片,切片结果也是列表
    print( li [3 : -1])

    3. for循环 

    for item in li:
    print(item)

    4. 列表元素修改 

    li = [11, 44, 22, 33, 22]
    li[1] = 120
    print(li)     # [11, 120, 22, 33, 22]
    li[1] = [11,22,33,44]
    print(li)     # [11, [11, 22, 33, 44], 22, 33, 22]

    5. 删除 del()

    li = [11, 44, 22, 33, 22]
    del li[1]
    print(li)     # [11,22,33,22]

    6. 切片

    li = [11, 44, 22, 33, 22]
    li[1:3] = [120,90]
    print(li)     # [11, 120, 90, 33, 22]
    del li[2:4]
    print(li) # [11, 120, 22]

    7. in 操作

    li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
    v1 = "石振文" in li
    print(v1)     # False
    v2 = "age" in li
    print(v2)     # True

    8. 操作

    li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
    print(li[4][1][0])     # 19
    print(li[4][1])        # ['19', 10]

    9. 字符串转换为列表

    a = 123
    a = str(a)
    new_a = list(a)  # 字符串可以转换为列表,数值不可以
    print(new_a)     # ['1', '2', '3']

    10. 列表转换为字符串

    li = [11,22,33,"123","alex"]
    s = ""
    for i in li:
        s = s + str(i)
    print(s)     # 112233123alex

    或者用 join 的方法

    li = ["123","alex"]
    v = "".join(li)
    print(v)     # 123alex

    11. 字符串修改

    v = "alex"
    v = v.replace('l','el')
    print(v)     # aelex

    二、元组类中提供的方法

    1. 索引
        v = tu[0]
        print(v)

    2. 切片
        v = tu[0:2]
        print(v)

    3.  可以被 for 循环,可迭代对象

        for item in tu:

        print(item)

    4. 字符串转换为元组

    s = "asdfas"
    li = ["asdf","asdfas"]
    tu = ("asdf","as")
    
    v = tuple(s)
    print(v)     # ('a', 's', 'd', 'f', 'a', 's')
    
    v = tuple(li)
    print(v)     # ('asdf', 'asdfas')
    
    v = list(tu)
    print(v)     # ['asdf', 'as']
    
    v = "_".join(tu)
    print(v)     # asdf_as
    
    li = ["asdf","asdfasdf"]
    li.extend((11,22,33,))
    print(li)    # ['asdf', 'asdfasdf', 11, 22, 33]

    5. 元组的一级元素不可修改/删除/增加

    tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
    # 元组,有序。
    v = tu[3][0][0]
    print(v)     # 33
    v=tu[3]
    print(v)     # [(33, 44)]
    tu[3][0] = 567
    print(tu)     # (111, 'alex', (11, 22), [567], True, 33, 44)
    tu[3] = '12'    # 报错

     

    三、字典类中提供的方法

    基本结构

    1、字典的 value 可以是任何值——列表、元组、字典、布尔值等

    2、布尔值(1,0)、列表、字典不能作为字典的 key,但元组可以

    3、索引方式找到字典的元素

    4、字典支持 del 删除

    info = {
        "k1": 18,
        "k3": [
            11,
            [],
            (),
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        2: (11,22,33)
    }
    del info['k1']
    print(info)     # {2: (11, 22, 33), 'k3': [11, [], (), {'kk2': 'vv2', 'kk1': 'vv1', 'kk3': (11, 22)}]}
    del info['k3'][3]['kk1']
    print(info)     # {2: (11, 22, 33), 'k3': [11, [], (), {'kk2': 'vv2', 'kk3': (11, 22)}]}

    5、 for 循环

    info = {
        2: True,
        "k3": [
            11,
            [],
            (),
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        4: (11,22,33,44)
    }
    for item in info:
        print(item)             # 2
                                # 4
                                # k3
    for item in info.keys():
        print(item)             # 2
                                # 4
                                # k3
    for item in info.values():
        print(item)             # 11, [], (), {'kk2': 'vv2', 'kk1': 'vv1', 'kk3': (11, 22)}]
                                # True
                                # (11, 22, 33, 44)
    for k,v in info.items():
        print(k,v)              # 2 True
                                # 4 (11, 22, 33, 44)
                                # k3 [11, [], (), {'kk1': 'vv1', 'kk3': (11, 22), 'kk2': 'vv2'}]

    6. 根据序列,创建字典,并指定统一的值    fromkeys()

    v = dict.fromkeys(["k1",123,"999"],123)
    print(v)      # {123: 123, '999': 123, 'k1': 123}
    v = dict.fromkeys(["k1",123,"999"])
    print(v)      # {123: None, '999': None, 'k1': None}

    7. 根据Key获取值,key不存在时,可以指定默认值(None)

    dic = {"k1":"v1"}
    v = dic['k1']
    print(v)       # v1
    v = dic.get('k11111')
    print(v)       # None 如果用dic则会报错
    v = dic.get('k11111','asdf')
    print(v)       # asdf  如果不存在,就传递asdf

    8. 删除并获取值  pop(), popitem()

    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    v = dic.pop('k1',90)
    print(dic,v)            # {'k2': 'v2'} v1      如果没有k1,就传递90
    k,v = dic.popitem()     # 随机删除
    print(dic,k,v)          # {} k2 v2   

    9. 设置值  setdefault()

    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    v = dic.setdefault('k1','123')      # 已存在,不设置,获取当前key对应的值
    print(dic,v)       # {'k1': 'v1', 'k2': 'v2'} v1
    v = dic.setdefault('k3','123')      # 不存在,设置,获取当前key对应的值
    print(dic,v)       # {'k1': 'v1', 'k2': 'v2', 'k3': '123'} 123

    10. 更新(两种写法都可以) update()

    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    dic.update({'k1': '111111','k3': 123})
    print(dic)       # {'k2': 'v2', 'k1': '111111', 'k3': 123}
    dic.update(k1=123,k3=345,k5="asdf")
    print(dic)       # {'k5': 'asdf', 'k2': 'v2', 'k1': 123, 'k3': 345}
  • 相关阅读:
    linux下postgresql的安装与卸载
    根据高德API知道坐标获取详细地址信息
    springboot学习笔记:11.springboot+shiro+mysql+mybatis(通用mapper)+freemarker+ztree+layui实现通用的java后台管理系统(权限管理+用户管理+菜单管理)
    springboot学习笔记:10.springboot+atomikos+mysql+mybatis+druid+分布式事务
    springboot学习笔记:9.springboot+mybatis+通用mapper+多数据源
    springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
    springboot学习笔记:7.IDEA下5步完成热部署配置
    springboot学习笔记:6.内置tomcat启动和外部tomcat部署总结
    springboot学习笔记:5.spring mvc(含FreeMarker+layui整合)
    springboot学习笔记:4.logback日志配置
  • 原文地址:https://www.cnblogs.com/zhangguoxv/p/9746394.html
Copyright © 2011-2022 走看看