• python-day7


    一. 基础数据部分的补充

      1. join: 把列表中的数据进行拼接,拼接成字符串

    lit = ['alex','wusir','ritian','taiabai']
    s = "_".join(lit) #把列表拼接起来, split()相反
    print(s)
    
    #效果一样
    # s = ''
    # for i in lit:
    #     s += i + '_'
    # print(s.strip("_"))
    View Code

      2. 关于删除

        列表和字典循环的时候都不能删除

    1 ls = [1,2,3,4]
    2 # ls.clear()#清空列表
    3 # print(ls)
    4 
    5 for i in ls:
    6     ls.remove(i)
    7 print(ls)#删除不彻底,因为每次删除都会导致元素的移动,每次更新一次索引
    View Code

        把要删除的内容保存到新列表中,循环新列表,删除旧列表(字典)

    1 ls = [1,2,3,4]
    2 new_li = []
    3 for i in ls:
    4     new_li.append(i)
    5 # 循环新列表,删除原来的列表
    6 for c in new_li:#不会导致循环的列表的元素移动问题
    7     ls.remove(c)#,删除的是老列表
    8 print(ls)
    View Code

      3. fromkeys

        dic.fromkey(iter,value)

        把可迭代对象进行迭代,和后面的value组成键值对返回新字典

        1.返回新字典,不会改变原来的字典

    1 dic = {}
    2 new_dic = dic.fromkeys('x23','xxx')
    3 print(dic)    #打印原来的字典
    4 print(new_dic)#新字典
    View Code

        2,字典中所有的value都是同一内容

    1 dic = {'a':'1','b':'2','c':'3'}
    2 d = dic.fromkeys('x12',[])
    3 print(d)
    4 print(dic)
    View Code

        3. frozenset 可哈希的集合,不可变.

         s = forzenset([ 1,2,3,4,5 ])

         print(id(s))

    二. set集合

      set特点:无序不重复,内部元素必须可哈希(不可变)

    1 s = {1,2,(3,4,5,6),'abc'}#本身可变,不可哈希,但是内部元素是不可变的
    2 print(type(s))
    3 s.remove(2)   #删除指定元素
    4 s.add(66)   #添加指定元素
    5 s.pop()     #随机删除元素,pop()不能指定删除
    6 #集合不能修改,只能删除之后再添加
    7 # list -> tuple
    8 # set -> frozenset
    9 print(s)
    View Code

      frozenset可哈希的集合,不可变

    1 s = frozenset([1,2,3,4,5])
    2 print(type(s))#<class 'frozenset'>
    3 for i in s:
    4     print(i)
    View Code

    三. 深浅拷贝

       ' = ' 没有产生新对象都是内存地址的赋值

    1 lst1 = ['孙悟空','贝吉塔']
    2 lst2 = lst1
    3 lst1.append('短笛')
    4 print(lst1)
    5 print(lst2)
    6 print(id(lst1),id(lst2))
    View Code

      浅拷贝copy(),  [ : ]  #拷贝第一层内容

        优点:省内存

        缺点:容易出现同一对象被多个变量所引用

     1 lst1 = ['孙悟空','贝吉塔',['七龙珠']]
     2 # lst2 = lst1[:]
     3 # lst1.append('短笛')
     4 # print(lst1,lst2)
     5 # print(id(lst1),id(lst2))
     6 
     7 lst2 = lst1.copy()
     8 # lst1.append('短笛')
     9 lst1[2].append('短笛')
    10 print(lst1,lst2)
    11 print(id(lst1[2]),id(lst2[2]))
    View Code

      深拷贝

        优点:完全拷贝一份

        缺点:占内存

        import copy

        copy.deepcopy()深度拷贝,把对象内部的所有内容都拷贝一份

    1 import copy
    2 lst1 = ['孙悟空','贝吉塔','卡卡罗特',['七龙珠','战斗陀螺']]
    3 lst2 = copy.deepcopy(lst1)#会把这个对象相关的内部信息全部复制一份
    4 lst1[3].append('wqer')
    5 print(lst1,lst2)
    6 print(id(lst1),id(lst2))
    View Code

      共同点:作用创建对象   >>>>> 原型模式(设计模式)

      

  • 相关阅读:
    oracle函数 MAX([distinct|all]x)
    oracle函数 MAX([distinct|all]x)
    oralce函数 count(*|[distinct|all]x)
    oracle函数 VARIANCE([distinct|all]x)
    oralce函数 STDDEV([distinct|all]x)
    oracle函数 SUM([distinct|all]x)
    oralcle函数 AVG([distinct|all]x)
    oracle函数 lag()和lead()
    oracle函数 ROW_NUMBER()
    Linux性能测试 netstat命令
  • 原文地址:https://www.cnblogs.com/Thui/p/9849971.html
Copyright © 2020-2023  润新知