ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Python学习笔记:day06 数据类型(集合)& 内存相关

2021-05-28 11:35:26  阅读:139  来源: 互联网

标签:info 11 22 Python 数据类型 day06 v1 v2 print


day06数据类型(四)

今日内容

  • 集合
  • 内存相关
  • 深浅拷贝

内容回顾 & 补充

  1. 内容回顾

  2. 补充

    • 列表

      • reverse,反转

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

        # v1.sort(reverse=False) #从小到大(默认)
        v1.sort(reverse=True) #从大到小
        print(v1)
        
    • 字典

      • key/values/items

      • get

        info = {'k1':'v1','k2':'v2'}
        # print(info['k1111'])
        # v2 = info.get('k1111')
        # print(v2)  #返回None
        # v3 = info.get('k1111',666)
        # print(v3) #返回666
        
        result = info.get('k111')
        print(result)
        if result == None:
            print('不存在')
        
        if result:
            print('存在')
        else:
            print('不存在')
        
         #None数据类型,改类型表示空(无任何功能,专门提供空值)
        
      • pop

        # info = {'k1':'v1','k2':'v2'}
        # result = info.pop('k2')
        # print(info,result)
        #
        # del info['k1']
        
      • update

        nfo = {'k1':'v1','k2':'v2'}
        info['k3'] = 'v4'
        #不存在则添加,存在则替换
        info.update({'k3':'v3','k4':'v4'})
        print(info)
        
    • 判断一个字符串是否有敏感字符?

      • 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)
        
        #方式二:
        #list(v.values()) #强制转换成列表['v1','v2','v3']
        for 'v2' in list(v.values):
            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:
                
                sucess = False
                break
        if success:
            print(content)
        else:
            print('包含敏感字符')
            
        #示例:
        # 1.昨天上课最后一题
        # 2.判断'v2'是否在字典的value中 v = {'k1':'v1','k2':v2}
        # 3.敏感字
        
        

内容详细

1.集合set

  • 无序
  • 不重复
v = {1,2,3,4,5,6,99,100}

#疑问:v = {}
#1.空集合
# v = {}  #空字典
# v1 = set()
# print(type(v1))
'''
None
int
    v1 = 123
    v1 = int() -> 0
bool
    v2 = True/False
    v2 = bool()  -> False
str
    v3 = ""
    v3 = str()
list
    v4 = []
    v4 = list()
tupe
    v5 = ()
    v5 = tuple()
dict
    v6 = {}
    v6 = dict()
set
    v7 = set()
'''
  1. 集合的独有功能

    • add
    • discard
    • update
    • intersection
    • union
    • difference
    • symmetric_difference
  2. 公共功能

    • len

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

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

    • 步长【无】

    • 切片【无】

    • 删除【无】

    • 修改【无】

  3. 嵌套

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

2.内存相关

  • 示例一:

    v1 = [11,22,33]
    v2 = [11,22,33]
    
    v1 = 666
    v2 = 666
    
    v1 = 'asdf'
    v2 = 'asdf'
    #按理 v1和v2应该是不同的内存地址,但python中具有小数据池缓存功能,特殊:
    	1.整型:-5 ~ 256
        2.字符串:'alex','sefsdfe','weaff','wef_wef'   ```"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)  #[11, 22, 33, 666]
    
    #练习2(赋值)
    v1 = [11,22,33]
    v2 = v1
    v1 = [1,2,3,4]   #赋值
    print(v2) #[11, 22, 33]
    
    #练习3:(重新赋值)
    v1 = 'alex'
    v2 = v1
    v1 = 'oldboy'
    print(v2)  #alex
    
  • 示例四

    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 = [1,2,3]
    # v3 = v2
    # print(id(v1),id(v2),id(v3))
    
    '''
    v1 = [1,2,3]
    v2 = v1
    print(id(v1),id(v2))
    v1 = 999
    print(id(v1),id(v2))
    '''
    
  • 问题: == 和 is 有什么区别?

    • ==用于比较值是否相等

    • is用于比较内存地址是否相等

总结

  • 列表
    • reverse
    • sort
  • 字典
    • get
    • update
  • 集合
    • add
    • discard
    • update
    • intersection
    • union
    • difference
    • symmetric_difference
  • 特殊
    • 嵌套:集合/字典的key
    • 空:None
    • 空集合
  • id
  • type
  • 嵌套的应用
    • 赋值
    • 修改内部元素:列表/字典/集合

标签:info,11,22,Python,数据类型,day06,v1,v2,print
来源: https://www.cnblogs.com/leiyu567567/p/14821484.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有