之前代码总行数735+133=868

内容回顾

  1. 列表:容器型数据类型,可以承载大量的数据,有序的数据

    • 增:

      • append 追加
      • insert 插入,按索引增
      • extend 迭代着追加
    • 删:
      • pop 按照索引删除,有返回值,返回
      • remove 按照元素删除
      • clear 清空
      • del 索引、切片(步长)
    • 改:
      • l1[1]='xxx'
      • l1[1:3]='1232ddawfw'
      • l1[1:4:2]='ab'
    • 查:索引、切片、for循环
  2. 元组:只读列表、()、拆包

  3. range() :可以看作是一个自己控制范围的数字list

    • 面试题:

      l1=range(5)
      print(l1[1:3]) #答案range(1,3)
    • 面试题2:

      for i in range(1,5,-1):
      print(i) #答案什么也没输出,也不报错
  4. 练习题

    #实现一个整数加法计算器(两个数相加):
    #
    #如:content=input('请输入内容:')用户输入5+9或5 +9或5+ 9,分割进行计算
    content=input('请输入内容:')
    l1=content.split('+')
    print(l1)
    result=int(l1[0].strip())+int(l1[1].strip())
    print(result)
    #实现一个整数加法计算器(多个数相加):
    content=input('请输入内容:')
    l1=content.split('+')
    print(l1)
    result=0
    for i in range(len(l1)):
    result += int(l1[i].strip())
    print(result)
    #计算用户输入的内容有几个整数
    content=input('请输入内容:')
    result=0
    for i in range(10):
    result += content.count('%s'%(i))
    print(result)
    #判断一句话是不是回文
    content=input('请输入内容:')
    if content[::-1]==content:
    print('是回文')
    else:
    print('不是回文')
    #利于下划线将列表连成字符串
    l1=['汤达人','good','boy']
    s1='_'.join(l1)
    print(s1) #汤达人_good_boy

今天学习内容

  1. 字典的初识

    • why:

      • 列表可以存储大量数据,但是数据之间的关联性不强

        • ['汤达人',22,''男','Henri',23,男]
      • 列表的查询速度比较慢
    • what:容器型数据类型:dict

    • how:

      • 数据类型的分类(可变与不可变):

        • 可变(不可哈希)的数据类型:list、dict、set

        • 不可变(可哈希)的数据类型:str、bool、int、tuple

          比如对字符串s的操作,形成了一个新字符串,原字符串不改变。

        • 字典:{}括起来,以键值对(键:值)存储的数据类型

        dic={'汤达人':
        {'name':'tangdaren','age':'22','sex':'男'}
        }
        • 键:必须是不可变的数据类型:int、str(bool、tuple几乎不用)

          #验证字典的合法性
          dic={[1,2,3]:'henri',1:666}
          print(dic) #TypeError: unhashable type: 'list'键是不可哈希的
        • 值:可以是任意数类型

          #键值对:
          #酒店:
          #键:房间号,如0~99。必须唯一,不唯一不报错,会按照后一个的数据走。
          #值:房间:房间里放什么数据都可以。
          #一定是通过键寻找值。
        • 字典3.5x版本前是无序的

        • 字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的

        • 字典3.7x以后都是有序的。

        • 字典的查询速度非常快,存储关联性的数据。

        • 字典的缺点:以空间换时间。

  2. 字典的使用(创建、增删改查)

    1. 字典的创建:

      #字典的创建:面试可能会考
      #方式一
      dic=dict((('one',1),('two',2),('three',3)))
      print(dic) # {'one': 1, 'two': 2, 'three': 3}
      #方式二
      dic=dict(one=1,two=2,three=3)
      print(dic) # {'one': 1, 'two': 2, 'three': 3}
      #方式三
      dic=dict({'one': 1, 'two': 2, 'three': 3})
      print(dic) #{'one': 1, 'two': 2, 'three': 3}
    2. 增删改查

      ## 增删改查
      dic={'name':'tangdaren','age':'22'}
      # 增
      dic['sex']='男' #增
      print(dic) #{'name': 'tangdaren', 'age': '22', 'sex': '男'}
      #如果对已存在的键做相同操作,改之。
      dic['age']='23' #改
      print(dic) #{'name': 'tangdaren', 'age': '23', 'sex': '男'}
      #setdefault 设置默认值、有则不变,无则增加
      dic.setdefault('hobby')
      print(dic) #{'name': 'tangdaren', 'age': '23', 'sex': '男', 'hobby': None}
      dic.setdefault('hobby','溜达')
      print(dic) #{'name': 'tangdaren', 'age': '23', 'sex': '男', 'hobby': None}
      dic.setdefault('feature','handsome')
      print(dic)#{'name': 'tangdaren', 'age': '23', 'sex': '男', 'hobby': None, 'feature': 'handsome'} # 删
      # pop按照键删除键值对,有返回值,返回值是对应的值。pop是重点***
      dic.pop('feature')
      print(dic)#{'name': 'tangdaren', 'age': '23', 'sex': '男', 'hobby': None}
      #另外,如果给pop设置第二个参数,无论字典中有没有此键,都不会报错,并且会把第二个值返回。
      #clear 清空字典内容
      #dic.clear() # 改
      dic['name']='xxx'
      print(dic) # 查
      #方法一,按照键查询值,不建议
      print(dic['hobby']) #None
      #方法二,get,返回值同pop,如果有这个键,返回这个值,如果没有,返回第二个参数
      l1=dic.get('hobb','没有此键')
      print(l1) #没有此键
      • 三个特殊的

        • key()

          # keys()可以把键转化成列表
          print(dic.keys()) #dict_keys(['name', 'age', 'sex', 'hobby'])
          print(list(dic.keys())) #['name', 'age', 'sex', 'hobby']
        • value()

          # values()可以把值转化成列表
        • item()

          # items()可以把所有键值对转换成列表
          print(dic.items()) #dict_items([('name', 'xxx'), ('age', '23'), ('sex', '男'), ('hobby', None)])
          for key,value in dic.items():
          print(key,value)
          '''又实现了元组拆包,得到了这样的表
          name xxx
          age 23
          sex 男
          hobby None
          '''
          #面试题:a=18,b=12,用一行互换a、b
          a=18
          b=12
          ################a,b=b,a####################
          print(a,b) #12 18
  3. 字典的嵌套

dic={
'name':'汪峰',
'age':48,
'wife':[{'name':'章子怡','age':38},],
'children':{'girl_first':'小苹果','girl_second':'小怡','girl_third':'顶顶'}
} #1.获取汪峰的名字
print(dic.get('name')) #汪峰
#2.获取这个字典{'name':'章子怡','age':38}
print(dic.get('wife')[0]) #{'name': '章子怡', 'age': 38}
#3.获取汪峰妻子的名字
print(dic.get('wife')[0].get('name')) #章子怡
#4.获取汪峰第二个孩子的名字
print(dic.get('children').get('girl_second')) #小怡

今日总结

  • 字典:查询速度快,数据关联性强。

    • 增删改查
    • 嵌套

明天内容

id is == 小数据池、集合……

Now代码总行数868+137=1005

python05day的更多相关文章

随机推荐

  1. 【LeetCode】331. Verify Preorder Serialization of a Binary Tree 解题报告(Python)

    [LeetCode]331. Verify Preorder Serialization of a Binary Tree 解题报告(Python) 标签: LeetCode 题目地址:https:/ ...

  2. E. Santa Claus and Tangerines

    E. Santa Claus and Tangerines time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  3. [LeetCode]485. Max Consecutive Ones 找到最大的连续的1的个数

    题目描述 输入只有0和1的数组(长度为正整数,且<10000),找到最大的连续1的个数 比如[1,1,0,1,1,1],输出3 思路 遍历数组,统计当前连续个数curCount和最大连续值max ...

  4. 【嵌入式】arduino IDE串口监视器可以正常使用但其他软件发送串口指令没有反应的问题

    解决办法: 1.检查 波特率baudrate 是否一致 2.检查 数据位长度databits 是否一致 3.检查 停止位长度stopbits 是否一致 4.检查 奇偶校验位 是否一致 5.(特殊)是否 ...

  5. Propensity Scores

    目录 基本的概念 重要的结果 应用 Propensity Score Matching Stratification on the Propensity Score Inverse Probabili ...

  6. Loss Landscape Sightseeing with Multi-Point Optimization

    目录 概 主要内容 代码 Skorokhodov I, Burtsev M. Loss Landscape Sightseeing with Multi-Point Optimization.[J]. ...

  7. CapstoneCS5212|DP to VGA|CS5212设计电路方案

    CS5212功能概述 CS5212是一款DisplayPort端口到VGA转换器,它结合了DisplayPort输入接口和模拟RGB DAC输出接口.嵌入式单片机基于工业标准8051核心. CS521 ...

  8. VUE3 之 循环渲染

    1. 概述 老话说的好:单打独斗是不行的,要懂得合作. 言归正传,今天我们来聊聊 VUE3 的 循环渲染. 2. 循环渲染 2.1 循环渲染数组 <body> <div id=&qu ...

  9. 编写Java程序_输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

    要求: 输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 实现代码: package kaoshi; import java.util.Scanner; pu ...

  10. [ vue ] 监听v-model数据的变化,只要有变化就改变vuex的state值

    场景描述: 1. 注册弹出框是用 v-model 绑定数据  showRegisterModal  实现的,点击遮罩层框架会把  showRegisterModal=false 2.REGISTER按 ...