zoukankan      html  css  js  c++  java
  • python 7 days

    7days

    数据类型的补充

    1,元组

    tu1 = ("laonanhai")
    tu2 = ("laonanhai")
    print(tu1,type(tu1))
    print(tu2,type(tu2))
    
    tu1 = (1)
    tu2 = (1,)
    print(tu1,type(tu1))
    print(tu2,type(tu2))
    
    tu1 = ([1,2,3]) 
    tu2 = ([1,2,3],) 
    print(tu1,type(tu1))
    print(tu2,type(tu2))
    

    list

    l1 = [111,222,333,444,555]

    索引为奇数对应的所有元素全部删除。

    方法一:

    del l1[1::2]

    print(l1) 

    在循坏一个列表时,最好不要改变列表的大小,会影响你的最终结果。

    倒着删除

    l1  = [111,222,333,444,555,]
    for i in range(len(l1)-1,-1,-1):
    if in % 2 == 1:
    del l1[i]
    print(l1)
    

    dict

    dic = dict.fronmkeys("abc",666)
    print(dic)
    dic = dict.fromkeys([11,22,33],666)
    print(dic)
    dic = dict.fromkeys([11,22,33],[])
    print(dic)
    
    l1 = []
    for key in dic:
    if "k" in key :
    l1.append(key)
    print(l1)
    for key in l1:
    del dic[key]
    print(dic)
    

    在循坏dict中,最好不要改变dict的大小,会影响结果或者报错。

    数据类型的转换:

    str ---> list split

    list --->str join

    tupple --->list

    tu1 = (1,2,3)
    l1 = list(tu1)
    print(l1)
    tu2 = tuple(l1)
    print(tu2)
    

    列表的去重

    l1 = [11,11,22,33,33,44,[1,2,3,4]]
    l2 = list (set(l1))
    12.sort()
    print(l2)
    

    增:2种方法add 和update

    set1.add("太白")
    print(set1)
    set.update("abc")
    set1.update([111,222,333])
    print(set1)
    

    删:4种方法remove、pop、clear和del

    remove按元素删除
    set1.remove("alex")
    print(set1)
    随机删除,有返回值pop
    print(set1.pop())
    print(set1)
    
    清空clear
    set1.clear()
    print(set1)
    删除整体 del
    del set1
    print(set1)

    查:一种方法for循坏

    无序元素

    set1 = {"alex","wusir","barry"}
    for i in set1:
    print(set1)
    

    交集:

    &   和   intersetion

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 & set2)
    print(set3)

    intersetion

    print(set1.intersetion(set2))

    并集:

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    |   和  union
    print(set1 | set2)
    print(set1.union(set2))
    

      

    差集:

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 - set2)  set 1 独有
    print(set2.difference(set1)) set 1 独有

    反交集:

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 ^ set2)
    print(set1.symmetric_difference(set2))
    

    子集:

    set1 = {1,2,3,}
    set2 = {1,2,3,4,5,6}
    print(set1 <  set2)  True  set1  是 set2 的子集
    print(set1.issubset  (set2))  True  set1  是 set2 的子集
    

    超集:

    set1 = {1,2,3,}
    set2 = {1,2,3,4,5,6}
    print(set2  >  set1)  True  set2  是 set1 的超集
    print(set2.issubset  (set1))  True  set2  是 set1 的超集
    

    冻集合:

    set1 = frozenset({1,2,3,"alex"})
    print(set1,type(set1))
    
    l1 = [1,2,3]
    l2 = l1
    l2.append(666)
    print(l1,l2)
    

    对于赋值运算来说,指向的都是同一个内存地址,一变都变。

    浅copy:

    l1 = [11,22,33]
    l2 = l1.copy()
    l1.append(666)
    print(l1,id(l1))
    print(l2,id(l2))
    

    对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持

    深copy:

    import copy
    l1 = [11,22,["barry"]]
    l2 = copy.deepcopy(l1)
    l1[2].append("alex")
    print(l1,id(l1[-1]))
    print(l2,id(l2[-1]))
    深copy 完全独立
    
    l1 = [1,2,3]
    l2 = [1,2,3]
    l1.append(666)
    print(l1,l2)
    

    深copy,两个内存地址

    对于切片来说,这是浅copy

    l1 = [1,2,3,4,5,6,[11,22]]
    l2 = l1[:]
    l1.append(666)
    print(l1.l2)
    l1[-1].appemd(666)
    print(l1,l2)
    

      

  • 相关阅读:
    UIImageView动画 UISlider控制速度
    python学习笔记——装饰器
    python学习笔记——继承
    python学习笔记——异步IO
    思路清楚的最大堆实现
    推荐几个IDEA必备的好用插件
    记工作中遇到的Date类相关的坑
    navicat数据库表数据复制到excel产生的列错位问题
    submit提交时进行页面验证
    SublimeText3常用快捷键和优秀插件(转载)
  • 原文地址:https://www.cnblogs.com/juxiansheng/p/9002744.html
Copyright © 2011-2022 走看看