day7

对于元祖来说,如果只有一个元素并且没有逗号,此数据是什么类型,该表达式就是什么类型

对于list,在循环一个列表时,不要进行删除的动作,容易出错,一旦删除,索引就会改变,用倒序删除  for i in range(len(li)-1,-1,-1)

  dic = dict.fromkeys('abc','alex')

    形成三个键(abc)都对应alex

    fromkeys形成的键对应的都是一个,一个该变都会改变

  循环字典中不能增加或删除此字典的键值对,可以将有k的键值对添加到列表中在操作

数据转换:

  int str bool

  str list   split  join

  li = list(tu)

  tu--->str  tu元素必须为字符串  s  = ''.join(tu)

集合set

  是个数据类型,不重复,无序,它里面元素是可哈希的,它本身是不可哈希的,不能作为字典的key

  作用:1.去重 li = list(set(li))再用sort排序

        2.数据关系的测试

        增:set1.add('xxx')

          .update()迭代增加

        删   .remove()

          .pop()随机删除,有返回值

          .clear() 变成set()空集合

          del set1 

        查:for i in set1:

        并集:print(set1|set2)

           print(set1.union

        交集:print(set1&set2)

           print(set1.intersection(set2))

        反交集:print(set1^set2)

            print(set1.symmetric_difference(set2))

        差集:print(set1-set2)

        子集:print(set1.issubset(set2))

        父集:print(set2.issuperset(set1))

        set2 = frozenset(set1)

        forzenset类型,不可变,可哈希,可以转字典的键

    对于赋值运算:指向的是同一个内存地址,字典、列表、集合都一样

    copy的不是指向一个,而是在内存中创建一个新的地址

    l2 = l1.copy()

    对于浅copy来说,第一层创建的是新的内存地址,从第二层开始,全部指向同一个内存地址,所以对第二层及以上,保持一致性

    deep.copy不管多少层都创建新的内存地址,改变一个另一个不变

    l2 = copy.deepcopy(l1)

    切片是浅copy

     

posted on 2018-03-26 18:40  nicess  阅读(53)  评论(0编辑  收藏  举报

导航