python day06笔记总结

2019.4.3 S21 day06笔记总结

一、昨日内容补充

1.列表独有功能:

  • 1.revers 反转

    例:v1 = [1,2,4,88,2]

           v1.revers()

           print(v1)

  • 2.sort

    例:v1 = [1,2,4,88,2]

           v1.sort(revers = False)    # 从小到大排列  (默认的,等同于v1.sort())

    、   v1.sort(revers = True)     # 从大到小排列

           print(v1)

2.字典独有功能

    1. .get()

      索引不存在,列表、元组会报错,字典也会报错(可以使用.get())

      例:info = {'k1':'v1','k2':'v2'}

             v1 = info['k1111']

             v2 = info.get('k1111')     # 表示'k1111'存在则取它的值,不存在则返回一个空值None,None在python中表示空

             v3 = info.get('k1111',666)    # 如果不存在就返回一个666

      None 数据类型,该类型表示空。无任何功能,专门用于表示空值。

    2. pop

      例:info = {'k1':'v1','k2':'v2'}

             result = info.pop('k1')    # 将pop删除的数据赋值给result

             info.del('k1')           #  仅仅是删除

             print(result)update()

    3. .update()

      例:info = {'k1':'v1','k2':'v2'}

             info.update({'k3':'v3','k4':'v4','k2':666})

             print(info)      # {'k1':'v1','k2':666,'k3':'v3','k4':'v4',}

             不存在,则增加;存在,则更新、修改。

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

  • 1.str

    例:v = 'python全栈21期'

           if '全栈' in v:

                print('含有敏感字符')

  • 2.list/tuple

    例:v = ['alex','oldboy','藏老四','利奇航']

           if '利奇航' in v:

                print('含有敏感字')

  • 3.dict

    例:v = {'k1':'v1','k2':'v2','k3':'v3'}

           . # 默认按照键判断,即判断x是否是字典的键

                 if 'x' in v :

                     pass

                 .# 请判断:'k1'是否在其中?

                 if 'k1' in v:

                 .# 请判断:'v2'是否在其中?

                 方式一:

                      flag = '不存在'

                      for v in v.value:

                          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('不存在')

二、今日内容

1.集合 set

  • 1.集合是无序的,不可重复的

    • None        空数据类型,本身是空,所以没有代表空的符号

    • int/bool     没有代表空的符号,int()=0,bool()=False

    • str            空字符串:""/str()

    • list           空列表:[]/list()

    • tuple        空元组:()/tuple()

    • dict          空字典:{}/dict()

    • set          空集合:set()

  • 2.独有功能

      1. .add() 添加

        例:v1 = {1,2}

               v1.add('lishaoqi')

               v1.add('lishaoqi')   # 第二次运行不会相加

               print(v1)

      2. .discard 删除

        例:v1 = {1,2,'李绍奇'}

               v1.discard('李绍奇')

               print(v1)    #  {1,2}

      3. .update() 批量添加

        例:v1 = {1,2,'李绍奇'}

               v1.update({22,44,33})

               print(v1)

      4. .intersection() 交集

        例:v1 = {1,2,'李绍奇'}

               result = v1.intersection({1,'李绍奇','小黑'})   # 形成一个新的东西

               print(result)    # {1,'李绍奇'}

      5. .union() 并集

        例:v1 = {1,2,'李绍奇'}

               result = v1.union({1,'李绍奇','小黑'})

               print(result)

      6. .difference() 差集

        例:v1 = {1,2,'李绍奇'}

               result = v1.difference({1,'李绍奇','小黑'})    #  v1中有且{1,'李绍奇','小黑'}中没有的

               print(result)   #  {2}

               v1 = {1,'李绍奇','小黑'}

               result = v1.difference({1,2,'李绍奇'})

               print(result)    #  {'小黑'}

      7. .symmetric_difference 对称差集

  • 3.公共功能

    • len

      例:v = {1,2,'李绍奇'}

             print(len(v))    # 3

    • for循环

      例:v = {1,2,'李绍奇'}

             for item in v:

                   print(item)

  • 4.嵌套

    • 1.列表、字典、集合是可变的,不可放在集合中,并且不能作为字典的key ( unhashable不可哈希)

      info = {1,2,3,True,"国风",None,(1,2,3)}

      print(info)

    • 2.hash :哈希是怎么回事?

      因为在内部会将值进行哈希算法,并得到一个数值(对应内存地址),以后用于快速查找。

      例1:info = {1,2,3,True,"国风",None,(1,2,3)}       #  {1,2,3,"国风",None,(1,2,3)}

               info = {2,3,True,"国风",None,(1,2,3)}          #  {True,1,2,3,"国风",None,(1,2,3)}

               info = {0,2,3,False,"国风",None,(1,2,3)}     #  {0,2,3,"国风",None,(1,2,3)}

               info = {2,3,False,"国风",None,(1,2,3)}        #  {False,2,3,"国风",None,(1,2,3)}

               print(info)

      例2:info = {

                     1:'alex'

                     True:'oldboy'

               }

               print(info)     #  {1:'oldboy'}

2.内存相关

  • 1.两种情况:

    修改内部元素(列表/字典/集合)

    重新赋值

  • 2.查看内存地址  id

    例:v1 = [1,2,3]                                                            v1 = [1,2,3]

           v2 = [1,2,3]     #  v1 、v2不是同一个地址              v2 = v1    # v1 、v2是同一个地址   

           print(id(v1),id(v2))

    注意:

            python常见的会缓存,放到同一个地址。(缓存机制、小数据池)

            按理v1、v2应该是不同的内存地址。特殊:

            int :  -5~256是常见的

            字符串:'alex'/'swde'/'a_ds'/'ades_sds'等

    问题:== 和 is 有什么区别?

               == 是比较的值是否相等

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

猜你喜欢

转载自www.cnblogs.com/yangjie0906/p/10658746.html
今日推荐