元组 tuple

  • 本质是一种有序集合
  • 和list相似
  • 元组是不可变的
  • 用()创建
  • 其中类型可以不同
  • 如果一个元组中只有一个元素,在这个元素后面加一个逗号, 来消除歧义tuple5 = (100,)
  • 修改元组

    tuple13 = (1, [100, 200, 300, 400], 3)
    print(tuple13)
    tuple13[1][2] = 666
    print(tuple13) # 表面上看,tuple的元素改变了,但实际上变得不是tuple的元素,是list的元素
    
  • 删除

     del tuple1 #被直接删除
  • 数据类型转换

    tuple(list)
    list(tuple)
    

字典

  • 字典中的key必须唯一
  • key值必须是不可变的数据类型:字符串,元组,Number
  • list可变,不能作为key使用
  • value为任意数据类型,可以重复
  • 字典的本质是一种无序集合
  • 字典的访问

      print(dic1.get("hmm"))
      # get获取字典中的值,如果当前key值不存在,返回None,而常规访问会Error
  • 删除

      .pop(key)
  • 遍历

      for key in dict1.keys()
      for values in dict1.values()
      for key, values in dict1.items()
  • dict.keys()和 dict.values() 返回一个可迭代对象

      from collections import Iterable
      dict1 = {'a':1, 'b':2}
      print(dict1.values())
      print(list(dict1.values()))
      print(isinstance(dict1.keys(), Iterable))
      
      # dict_values([1, 2])
      # [1, 2]
      # True
    
  • dict与list相比:
    dict:1、查找及插入速度块,不会随着key及value的增加而变慢
    2、需要占用的内存大,内存浪费多
    list:1、查找及插入速度会随着数据的增加而变慢
    2、需要占用的内存小,内存浪费少

set集合

  • 与dict相比,set是一组存储key的集合,但不存储value
  • 本质:一个无序的及元素不重复的集合

        set1 = set([1,2,3,4])
        set2 = set([1,2,3,4,2,2,2,3,3,1,4,5,6,2,1]) #重复会被过滤
        print(set2)  # {1,2,3,4,5,6}
        
        # tuple
        set3 = set((1,2,3,2,1))
        print(set3)
    
        # dict
        set4 = set({"a":1, "b":2, "c":3})
        print(set4)  # 只保留字典的key值  # {'a','b','c'}
    
        dic5 = {"a":1, "b":2, "c":3}
        set5 = set(dic5.values())
        print(set5)
        
        # 数据类型不匹配
        # set6 = set(100)
        # print(set6)  # TypeError: 'int' object is not iterable(迭代器)
        # 迭代器就是一种集合数据类型
    
  • 添加数据

        add() #只添加不可变的数据类型 元组字符串数字
        update(iter) # list,tuple,string,dict(只有key)
  • 删除

    remove()
  • set不支持下标访问
  • 集合的操作

    set10 = set([1,2,3,4,5])
    set11 = set([4,5,6,7,8])
    # 1、&  交集
    set12 = set10 & set11
    print(set12)
    # 2、|   并集
    set13 = set10 | set11
    print(set13)
    # 3、^   补集
    set14 = set10 ^ set11
    print(set14)
  • 不同数据类型的装换

    list-set
    tuple->set
    set->list
    set->tuple
    list->tuple
    tuple->list
  • 将list中的重复数据删除可以用set

    list1 = [1,2,3,6,3,2,1,1,1,9]
    set1 = set(list1)  # 过滤重复数据
    list2 = list(set1)
    print(list2)

你可能感兴趣的文章

载入中...
rottengeek rottengeek

5 声望

发布于专栏

Python玩起来

敬情享受python的魅力世界

0 人关注