python Day5

  • 字典

    • 其他数据类型的缺点

      • 列表可以存储大量的数据,但是关联性不强。
      • 列表的查询速度比较慢
    • 其容器的数据类型为dict

    • 其数据类型的分类

      • 可变(不可哈希)的数据类型:list dict set(集合)
      • 不可变(可哈希)的数据类型:str bool int tuple(不可操控原来的数据,都是建立一个新的字符串
    • 字典的格式

      • 字典:{}括起来,以键值对形式储存的容器数据类型

        dict1={"佛祖":
        {"name":"如来佛祖","sex":"男"}}
      • 字典是以key(键)和value(值)成对组成的,但是其键必须是不可变的数据类型组成的。(int,str 比较常用 bool tuple不常用)

      • 值可以是任意数据类型,对象

      • 字典3.5X版本之前(包括3.5)是无序的

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

      • 3.7以后都是有序排列的

      • 字典优点:查询插入速度快,存储关联性的数据

      • 字典的缺点:以空间换时间(字典需要占用大量的内存,内存浪费多,其实使用hash算法通过key值计算需要查找位置的)

    • 字典的创建方式

      • 方法一

        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}
  • 字典的增删改查

      • 方法一

        #如果初始的字典没有需要加入的key,则是真假,如果已经含有了key,重新赋值就是修改
        dic={"name":"如来佛祖","sex":"man"}
        dic['age']="无限"
        print(dic)
        #结果 {'name': '如来佛祖', 'sex': 'name', 'age': '限'}
      • 方法二

        dic={"name":"如来佛祖","sex":"man"}
        dic.setdefault("hobby","洗脑")
        print(dic)
        #结果 {'name': '如来佛祖', 'sex': 'name', 'hobby': '洗脑'}
    • 删 pop

      • 方法一 pop 同样能返回删除参数

        dic={"name":"如来佛祖","sex":"man"}
        ret=dic.pop("sex","没有此键")#设置第二个参数则无论字典中有无此键都不会报错
        print(dic)
        #结果 {'name': '如来佛祖'}
      • 方法二 clear 清空

        dic={"name":"如来佛祖","sex":"man"}
        ret=dic.clear()
        print(dic)
        #结果 {}
      • 方法三 del 没有pop好用,遇到字典中没有此键就会报错

        dic={"name":"如来佛祖","sex":"man "}
        del dic["sex"]
        print(dic)
        #结果 {'name': '如来佛祖'}
    • 改 在增加的地方已经说过

      • 方法一 通过key的提示将value值查找出来

        dic={"name":"如来佛祖","sex":"name","hobby_list":["假仁假义","大骗子","印度邪教"]}
        print(dic["hobby_list"])
        #结果 ['假仁假义', '大骗子', '印度邪教']
      • 方法二 get

        #get这个方法的获取更优势,理由同pop一样
        dic={"name":"如来佛祖","sex":"name","hobby_list":["假仁假义","大骗子","印度邪教"]}
        ls=dic.get("hobby_list")#同pop设置第二参数则字典有无此键都不会报错
        print(ls)
        #结果 ['假仁假义', '大骗子', '印度邪教']
      • 方法三 keys()

        #查出所有keys值
        #这个数字类型可以转化为列表
        dic={"name":"如来佛祖","sex":"name","hobby_list":["假仁假义","大骗子","印度邪教"]}
        print(dic.keys())
        #dict_keys(['name', 'sex', 'hobby_list'])
        #将其转化为列表
        dic={"name":"如来佛祖","sex":"name","hobby_list":["假仁假义","大骗子","印度邪教"]}
        print(list(dic.keys()))
        #结果 ['name', 'sex', 'hobby_list']
      • 方法四 items

        #将字典的keys和values值分别取出来,这里功能用到了元组的拆包
        dic={"name":"如来佛祖","sex":"name","hobby_list":["假仁假义","大骗子","印度邪教"]}
        for key,values in dic.items():
        print(key,values)
        #结果 name 如来佛祖
        # sex name
        # hobby_list ['假仁假义', '大骗子', '印度邪教']
  • 练习

    • 1.如content=input("输入内容:")用户输入 5+9+6 +12 +13然后进行计算

      content=input("请输入需要的内容:")
      list=content.split("+")
      result=0
      for i in list:
      result+=int(i)
      print(result)
    • 2.计算用户输入的内容中有几个整数(以个位数为单位)如:content=input("请输入内容:")如sfhlsdfh3445fdlsfh+=455f

      content=input("请输入需要的内容:")
      number=0
      for i in content:
      if i.isdecimal():
      number+=1
      print(number)
    • 3.判断一句话是否为回文。回文:正反念和反正念是一样的。列如,上海自来水来自海上

      content1=content[::-1]
      if content==content1:
      print("这是回文")
      else:
      print("这不是回文")
    • 4.找出li列表中的元素,移除每个(for)元素的空格,并找出一“A"或者”a"开头,并以"C"结尾的所有元素,并添加到一个新的列表中,最后循环打印这个列表。

      li=["TaiBai ","alexC","AbC ","egon","riTiAn","WuSir","aqc"]
      newli=[]
      for i in li:
      i1=i.strip()
      # if i1.startswith("A") or i1.startswith("a") and i1.endswith("C"):
      if i1.upper().startswith("A") and i1.endswith("C"):
      newli.append(i1)
      for j in newli:
      print(j)
    • 5.如下列表

      li=[1,3,4,"xiaoming",[3,7,8,"taiwan"],5]

      循环打印列表中的每个元素,遇到列表则再循环打印出它里面元素

      li=[1,3,4,"xiaoming",[3,7,8,"taiwan"],5]
      for i in li:
      if type(i)==list:
      for j in i:
      print(j)
      else:
      print(i)

python基础 Day5的更多相关文章

  1. Python基础Day5

    一.字典 ①字典是python的基础数据类型之一 ②字典可以存储大量的数据,关系型数据 ③字典也是python中唯一的映射类的数据类型 字典是以键值对的形式存在的,{键:值} 字典的键必须是不可变的数 ...

  2. 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用

    本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...

  3. Python基础学习总结(持续更新)

    https://www.cnblogs.com/jin-xin/articles/7459977.html 嗯,学完一天,白天上班,眼睛要瞎了= = DAY1 1,计算机基础. CPU:相当于人的大脑 ...

  4. python基础-基础知识(包括:函数递归等知识)

    老男孩 Python 基础知识练习(三) 1.列举布尔值为 False 的值空,None,0, False, ", [], {}, () 2.写函数:根据范围获取其中 3 和 7 整除的所有 ...

  5. Python基础 小白[7天]入门笔记

    笔记来源 Day-1 基础知识(注释.输入.输出.循环.数据类型.随机数) #-*- codeing = utf-8 -*- #@Time : 2020/7/11 11:38 #@Author : H ...

  6. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  7. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  8. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  9. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

随机推荐

  1. MySQL Front远程连接数据库

    连接前需要先配置一下服务器端的数据库 进入mysql数据库,选择mysql mysql> use mysql; 选择 host 表 mysql> select host from user ...

  2. HttpServletRequest、HttpServletResponse

    doGet()/doPost()方法都有两个参数,一个为代表请求的request,另一个代表响应response. request是获取前台传递的内容,response是反馈给前台数据 HttpSer ...

  3. Fortify Audit Workbench 笔记 Unreleased Resource: Database( 未释放资源:数据库)

    Unreleased Resource: Database 未释放资源:数据库 Abstract 程序可能无法成功释放某一项系统资源. Explanation 程序可能无法成功释放某一项系统资源. 资 ...

  4. Fortify Audit Workbench 笔记 Race Condition: Singleton Member Field 竞争条件:单例的成员字段

    Race Condition: Singleton Member Field 竞争条件:单例的成员字段 Abstract Servlet 成员字段可能允许一个用户查看其他用户的数据. Explanat ...

  5. Hexo 静态博客指南:建站教程(上)

    本文最初发布于我的个人博客Bambrow's Blog,采用 BY-NC-SA 许可协议,转载请注明出处.若有后续更新,将更新于原博客.欢迎去我的博客阅读更多文章! 本文详细记录一下站点建立过程,以便 ...

  6. Python os.rmdir() 方法

    概述 os.rmdir() 方法用于删除指定路径的目录.仅当这文件夹是空的才可以, 否则, 抛出OSError.高佣联盟 www.cgewang.com 语法 rmdir()方法语法格式如下: os. ...

  7. C/C++编程笔记:C++入门知识丨从结构到类的演变

    先来看看本节知识的结构图吧! 接下来我们就逐步来看一下所有的知识点: 结构的演化 C++中的类是从结构演变而来的, 所以我们可以称C++为”带类的C”. 结构发生质的演变 C++结构中可以定义函数, ...

  8. 用tf.one_hot函数写任一坐标为1的二维张量

    先给出tf.one_hot的用例:(例子转自https://www.jianshu.com/p/c5b4ec39713b) import tensorflow as tf var0 = tf.one_ ...

  9. mac 教你如何在Mac上搭建自己的服务器——Nginx

    WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...

  10. jersey简单总结与demo

    参考链接:https://www.iteye.com/blog/dyygusi-2148029?from=singlemessage&isappinstalled=0 测试代码: https: ...