zoukankan      html  css  js  c++  java
  • is,数据类型补充,set,深浅拷贝

    十二.基础数据类型补充:

             1.join 可以把列表变成字符串.

        s = ‘abc’

        s1 = s.join(‘非常可乐’)

        print(s1)  #非abc常abc可abc乐abc

        s = "_"

        s1 = s.join(['alex','wusir','taibai','ritian'])

        print(s1)   #alex_wusir_taibai_ritian 

    数据类型的转换:str-àlist:split

                      list -àstr:join

                              其他类型的转换都是用括号括起来

    2. # 用for循环将列表里内容全部删除,不能直接删除,先放到新列表,再删除(字典也是一样)

    new_lst = []

    lst = ["我不是药神", "西游记", "西红柿首富", "天龙八部"]    

    for el in lst:

             new_lst.append(el)  #记录要删除的内容添加到新列表

    for ele in newlst:          #循环记录的内容

             lst.remove(ele)  #从新列表中拿元素删除原列表的内容

    print(lst)

    3.fromkeys : 返回一个新字典

    a = dict.fromkeys([‘alex’,’taibai’,’tangseng’],’123’)

    print(a)  #结果:{‘alex’:’123’,’taibai’:’123’,’tangseng’:’123’}

    dic = {}

    a = dic.fromkeys(‘刘德华’,’梁朝伟’)

    print(a) #结果:{‘刘’:’梁朝伟’,’华’:梁朝伟,’德’:’梁朝伟’}  这个内容跟dic = {}里的内容没有任何关系.

    4.转换成False的数据:

    0 None [] {} set()

    十三.set集合:

             set中的元素是不重复的,无序的用{}表示,所以一般都是用set去重复 不能进行切片和索引

             set里面的元素必须是可hash的(int,str,tuple,bool),但是set本身是不可hash的,set是可变的. set1 = {'1','alex',2,True,[1,2,3]} # 报错

    set2 = {'1','alex',2,True,{1:2}} # 报错

    set3 = {'1','alex',2,True,(1,2,[2,3,4])} # 报错

             set去重复:

             lst = [45, 5, "哈哈", 45, '哈哈', 50]

             lst = set(lst)  #先转换成set类型去重

             lst = list(lst)  #在装换成list类型

             print(lst)

             2.set的增删改查

    增:

    (1).add()  #添加元素,重复的内容不会被添加到set集合中

    (2).update() # 迭代更新

    s = {"刘嘉玲", '关之琳', "王祖贤"}

    s.update("麻花藤")

    print(s)

    s.update(["张曼玉", "李若彤","李若彤"])

    print(s)

    删:

    (1)     pop() #随机删 有返回值

    (2)     remove #按元素删,不存在这个元素,会报错

    (3)     clear()#清空  如果set集合是空的,打印出来是set(),因为要和dict区别

    查:用for查询

    3.常用操作:

    (1),交集

    两个集合的共有元素

    print(s1 & s2)

    print(s1.intersection(s2))

    (2),并集 除去重复的两个所有元素

    用 | 表示 或 union

    (3),差集 得到一个中单独存在的 s1 – s2  s1是第一个

    用 – 表示 或 difference

    (4),反交集 两个集合中单独存在的元素

    用 ^ 表示 或 symmertrc_difference

    (5),子集

    用 < 表示 或 issubset  判断 set1是set2是子集么 返回True 或False

    (6),超集

    用 > 表示 或 isuperset

    s = frozenset([1,3,6,6,8,9]) 可以去重复,也是set集合  

    print(s) #结果 frozenset({1,3,6,8,9})

             冻结了的set集合,可哈希的,不可变, 所以这个可以放到集合里

    Ps:   s = set()     #空集合

         dic = dict()    #空字典

              s  = str ()     #空字符串

              i  = int()         #空数字

              lst = list()    #空列表

    这些叫做实例化,初始化一个对象的方法

    十四.深浅拷贝:

    1. 直接赋值,两个变量指向同一个对象  即同一个内存地址
    2. 浅拷贝:只拷贝第一层内容  copy()   
    3. 深度拷贝:对象中的所有内容都被拷贝一份

          Import.copy

         copy.deepcopy

  • 相关阅读:
    跨域的几种方式
    jQuery滚动条回到顶部或指定位置
    获取屏幕高度、宽度
    js判断手机系统和微信
    js获取url中的参数
    css3内容溢出属性
    css盒模型
    [转]swagger2 入门教程
    [转]cron表达式的用法
    [转]React入门看这篇就够了
  • 原文地址:https://www.cnblogs.com/ITdong-1/p/9289497.html
Copyright © 2011-2022 走看看