1.补充

1.列表方法补充

  • reverse,反转。

    v1 = [1,2,3111,32,13]
    print(v1)
    v1.reverse()
    print(v1)
  • sort,排序

    v1 = [11,22,3111,32,13]
    print(v1)
    
    # v1.sort(reverse=False) # 从小到大(默认)
    # v1.sort(reverse=True) # 从大到小
    # print(v1)

2.字典方法补充

  • keys/values/items

  • get

    • 判断字典中是否存在键,不存在则返回None,存在则取对应的值并返回赋值给变量
    info = {'k1':'v1','k2':'v2'}
    
    # v1 = info['k11111']
    # v2 = info.get('k1111') # None就是Python中的空
    # v3 = info.get('k1111',666)
    # print(v2)
    
    # None数据类型,改类型表示空(无任何功能,专门用于提供空值)
  • pop

    • 删除,也可以用del删除
    info = {'k1':'v1','k2':'v2'}
    result = info.pop('k2')
    print(info,result)
    
    del info['k1']
  • update

    • 不存在,则添加/存在,则更新
    info = {'k1':'v1','k2':'v2'}
    
    # 不存在,则添加/存在,则更新
    info.update({'k3':'v3','k4':'v4','k2':666})
    print(info)

3.判断一个字符串中是否有敏感字符?

  • str

    v = "Python全栈21期"
    
    if "全栈" in v:
        print('含敏感字符')
  • list/tuple

    v = ['alex','oldboy','藏老四','利奇航']
    
    if "利奇航" in v:
        print('含敏感')
    
  • dict

    v = {'k1':'v1','k2':'v2','k3':'v3'}
    
    # 默认按照键判断,即:判断x是否是字典的键。
    if 'x' in v:
        pass 
    
    # 请判断:k1 是否在其中?
    if 'k1' in v:
        pass
    # 请判断:v2 是否在其中?
    # 方式一:循环判断
    flag = '不存在'
    for v in v.values():
        if v == 'v2':
            flag = '存在'
    print(flag)
    # 方式二:
    if 'v2' in list(v.values()): # 强制转换成列表 ['v1','v2','v3']
          pass
    # 请判断:k2:v2 是否在其中?
    value = v.get('k2')
    if value == 'v2':
        print('存在')
    else:
        print('不存在')
    
  • 练习题

    # 让用户输入任意字符串,然后判断此字符串是否包含指定的敏感字符。
    
    char_list = ['利奇航','堂有光','炸展会']
    content = input('请输入内容:') # 我叫利奇航  / 我是堂有光  / 我要炸展会
    
    success = True
    
    for v in char_list:
        if v in content:
            success = False
            break
    
    if success:
      print(content)
    else:
        print('包含铭感字符')
    
    # 示例:
    # 1. 昨天课上最后一题
    # 2. 判断 ‘v2’ 是否在字典的value中 v = {'k1':'v1','k2':'v2','k3':'v3'} 【循环判断】
    # 3. 敏感字

注意点:

  • 可设置一个标签来判断状态

    char_list = ['利奇航','堂有光','炸展会']
    content = input('请输入内容:')
    success = True  # 标签判断状态
    for v in char_list:
        if v in content:
            success = False
            break
    if success:
        print(content)
    else:
        print('包含铭感字符')

2.集合 set

  • 特点

    • 无序
    • 无重复
  • 空集合的创建

    v = {1,2,3,4,5,6,99,100}
    
    # 疑问:v = {}
    """
    None
    int
        v1 = 123
        v1 = int() --> 0
    bool
        v2 = True/False
        v2 = bool() -> False
    str
        v3 = ""
        v3 = str()
    list
        v4 = []
        v4 = list()
    tuple
        v5 = ()
        v5 = tuple()
    dict
        v6 = {}
        v6 = dict()
    set
        v7 = set()
    """
  • 集合独有功能

    • add 添加

      # v = {1,2}
      # v.add('Lishaoqi')
      # v.add('Lishaoqi')
      # print(v)
    • discard 删除

      # v = {1,2,'李邵奇'}
      # v.discard('李邵奇')
      # print(v)
    • update 批量添加

      # v = {1,2,'李邵奇'}
      # v.update({11,22,33})
      # print(v)
    • intersection 交集

      # v = {1,2,'李邵奇'}
      # result = v.intersection({1,'李邵奇','小黑'})
      # print(result)
    • union 并集

      # v = {1,2,'李邵奇'}
      # result = v.union({1,'李邵奇','小黑'})
      # print(result)
    • difference 差集

      # v = {1,2,'李邵奇'}
      # result = v.difference({1,'李邵奇','小黑'}) # v中有且{1,'李邵奇','小黑'}没有
      # print(result)
      
      # v1 = {1,'李邵奇','小黑'}
      # result1 = v1.difference({1,2,'李邵奇'})
      # print(result1)
    • symmetric_difference 对称差集

      # v = {1,2,'李邵奇'}
      # result = v.symmetric_difference({1,'李邵奇','小黑'})
      # print(result)

    注意:交集、并集和差集括号内传入参数时,可以同样是集合,也可以是列表和元组

  • 公共功能

    • len

      v = {1,2,'李邵奇'}
      print(len(v))
    • for循环

      v = {1,2,'李邵奇'}
      for item in v:
          print(item)
    • 索引【无】

    • 步长【无】

    • 切片【无】

    • 删除【无】

    • 修改【无】

  • 嵌套问题

    • 哈希问题

    列表/字典/集合:不能放在集合中,也不能作为字典的key(unhashable)

    # 1. 列表/字典/集合 -> 不能放在集合中+不能作为字典的key(unhashable)
    # info = {1, 2, 3, 4, True, "国风", None, (1, 2, 3)}
    # print(info)
    # 2. hash -> 哈希是怎么回事?
    # 因为在内部会将值进行哈希算法并得到一个数值(对应内存地址),以后用于快速查找。
    
    # 3. 特殊情况
    # info = {0, 2, 3, 4, False, "国风", None, (1, 2, 3)}
    # print(info)
    # 此时不打印False
    
    # info = {
    #     1:'alex',
    #     True:'oldboy'
    # }
    # 此时没有key为True的键,而是'oldboy'将'alex'覆盖
    # print(info)

3.内存相关

  • 示例一

    v1 = [11,22,33]
    v2 = [11,22,33]
    
    v1 = 666
    v2 = 666
    
    v1 = "asdf"
    v2 = "asdf"
    
    # 按理 v1 和 v2 应该是不同的内存地址。特殊:
    1. 整型:  -5 ~ 256
    2. 字符串:"alex",'asfasd asdf asdf d_asdf '   ----"f_*" * 3  - 重新开辟内存。

特殊:

# 按理 v1 和 v2 应该是不同的内存地址。特殊:
1. 整型:  -5 ~ 256
2. 字符串:"alex",'asfasd asdf asdf d_asdf '
    ----"f_*" * 3  - 重新开辟内存。
  • 示例二:

    v1 = [11,22,33,44]
    v1 = [11,22,33]
  • 示例三:

    v1 = [11,22,33]
    v2 = v1 
    
    # 练习1 (内部修改)
    v1 = [11,22,33]
    v2 = v1
    v1.append(666)
    print(v2) # 含 666
    
    # 练习2:(重新赋值)
    v1 = [11,22,33]
    v2 = v1
    v1 = [1,2,3,4]
    print(v2)
    
    # 练习3:(重新赋值)
    v1 = 'alex'
    v2 = v1
    v1 = 'oldboy'
    print(v2)
  • 示例四

    v = [1,2,3]
    values = [11,22,v]
    
    # 练习1:
    """
    v.append(9)
    print(values) # [11,22,[1,2,3,9]]
    """
    # 练习2:
    """
    values[2].append(999)
    print(v) # [1, 2, 3, 999]
    """
    # 练习3:
    """
    v = 999
    print(values) # [11, 22, [1, 2, 3]]
    """
    # 练习4:
    values[2] = 666
    print(v) # [1, 2, 3]
  • 示例五

    v1 = [1,2]
    v2 = [2,3]
    
    v3 = [11,22,v1,v2,v1]
    
  • 查看内存地址

    """
    v1 = [1,2,3]
    v2 = v1
    v1.append(999)
    print(v1,v2)
    print(id(v1),id(v2))
    """
    
    """
    v1 = [1,2,3]
    v2 = v1
    print(id(v1),id(v2))
    v1 = 999
    print(id(v1),id(v2))
    """
  • 问题: == 和 is有什么区别?

    v1 = [1, 2, 3, 4]
    v2 = [1, 2, 3, 5, 6]
    v1 == v2  ----> False
    v1 is v2  ----> False
    
    v1 = [1, 2]
    v2 = [1, 2]
    v1 == v2  ----> True
    v1 is v2  ----> False
    
    v1 = [1, 2, 3]
    v2 = v1
    v1 == v2  ----> True
    v1 is v2  ----> True
    • == 用于比较值是否相等。
    • is 用于比较内存地址是否相等。

系统学习python第六天学习笔记的更多相关文章

  1. 学习python网络数据采集笔记-1、2章

    英文不好只能看中文版的.邮电出版社翻译的真很烂. 以上是吐槽,以下是正文. 书中用的pthon 3.X版本,建议安装python3.4以上的版本,低版本的没有自带pip安装插件会比较麻烦. 下载地址: ...

  2. 学习Python第六天

    今天我们讲讲数据类型中的集合,博客写得有点糙,后续应该要进行优化优化了........ 集合:无序,不重复的数据组合,主要作用:去重,把一个列表变成集合,就自动去重了 基本语法:S = {1}类型为集 ...

  3. [IT学习]Python pandas 学习

    今天学习pandas来处理数据,结果用python 3.5.0的shell来调试,总是报错. 报错中包含如下字样: Traceback (most recent call last): File &q ...

  4. python学习笔记(一)之为什么学习python

    python的特点: 跨平台 实现同一个功能是Java代码的1/5 python应用范围: 操作系统 web 3D动画 企业应用 云计算 如何学习python? 学习语法 验证例子 学会总结 课外实践

  5. D03——C语言基础学习PYTHON

    C语言基础学习PYTHON——基础学习D03 20180804内容纲要: 1 函数的基本概念 2 函数的参数 3 函数的全局变量与局部变量 4 函数的返回值 5 递归函数 6 高阶函数 7 匿名函数 ...

  6. 零基础学习Python数据分析

    网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开.数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客.书籍.所以就有了本文,希望能 ...

  7. python的学习研究

    2017年5月8日-----开始学习python 为什么学习python? 感觉做爬虫很酷,我又不喜欢Java,所以就学python 提升自己,入行PHP到这个月底半年,想更多的扩展自己,让自己增值 ...

  8. Python进阶学习之特殊方法实例详析

    Python进阶学习之特殊方法实例详析 最近在学习python,学习到了一个之前没接触过的--特殊方法. 什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init_ ...

  9. python爬虫学习笔记(一)——环境配置(windows系统)

    在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库)   [推荐地址:清华镜像] https://mirrors ...

随机推荐

  1. django 中从外界借助多个网站时 static 的存放和整理

    在 模板之家中  前端页面直接上去抓取  可是遇到重复  或者 版本不统一  所以 在每个app下面建立自己的 stastic 在制作的html  页面上方 导入静态页面 {% load static ...

  2. cf 782# A.Andryusha and Socks B.The Meeting Place Cannot Be Changed C.Andryusha and Colored Balloons

    看来快掉到灰名的蒟蒻涨rating也快... A题模拟一下就好(一开始还sb,, #include<bits/stdc++.h> #define LL long long using na ...

  3. 六十七、SAP中内表插入的三种方法之一,APPEND的使用

    一.如果内表是一个普通的内表,只用于存储数据不用来排序,那么优先选择APPEND插入 二.我们运行程序,并把工作区和内表加入到断点变量,如图所示,1X22的意思如图 三.我们点击ITAB1,来看内表数 ...

  4. border-radius 在 浏览器开发者工具移动端里是有效的,在真机是无效的。

    border-radius 在 浏览器开发者工具移动端里是有效的,在真机是无效的,怎么解决? 答案是 border-radius:20px !important 加上!important 就好了.

  5. ZOJ 3795 Grouping 强连通分量-tarjan

    一开始我还天真的一遍DFS求出最长链以为就可以了 不过发现存在有向环,即强连通分量SCC,有向环里的每个点都是可比的,都要分别给个集合才行,最后应该把这些强连通分量缩成一个点,最后保证图里是 有向无环 ...

  6. Eclipse 中打开工程目录的插件

    我们想在Eclipse中的打开工程目录,Eclipse 自身没有这个功能,我们可以安装一个插件来实现这个功能.具体的操作方法如下: (1).到以下链接中下载插件:https://github.com/ ...

  7. redis十-对快照模式分析

    复制自:http://www.cnblogs.com/huangxincheng/p/5010795.html 一:快照模式 或许在用Redis之初的时候,就听说过redis有两种持久化模式,第一种是 ...

  8. Django static配置

    STATIC_URL = '/static/' # HTML中使用的静态文件夹前缀 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static&q ...

  9. win10 metasploit-framework 安装

    1.metasploit.com官网下载.msi文件(可能下载速度会很慢) 2.安装时务必关闭Windows Defender及其他杀毒软件,并在安装完成后设置metasploit文件夹为白名单 wi ...

  10. HDU - 4405 Aeroplane chess(期望dp)

    题意:沿着x轴从0走到大于等于N的某处,每一步的步数由骰子(1,2,3,4,5,6)决定,若恰好走到x轴上某飞行路线的起点,则不计入扔骰子数.问从0走到大于等于N的某处的期望的扔骰子次数. 分析: 1 ...