美文网首页
python组合数据类型

python组合数据类型

作者: 路口不会转弯 | 来源:发表于2020-02-17 22:10 被阅读0次

    python 数据类型概览

    python组合数据类型表.png

    重要知识点:

    1 , 通过索引的方式提取元素或切片,只适用于有序序列,而无序序列则不行

    2,可变序列和不可变序列的区别在于可变序列可以对变量本身修改,而不可变序列不能对变量本身修改,但是我们可以创建一个新的变量。

    考点一:list

    1 ) list的特点:

    • 所有元素放在[]中,相邻元素用逗号分隔

    • 列表内元素有顺序,可以使用索引,且元素类型可以不同

    • 线性的数据结构,元素可变

    • 个人认为和R语言的向量类似,有顺序,可以索引,可以改变。

    1. list 的创建
    # 直接用[]号创建
    a_list = ["武汉加油!","中国加油!"]
    # 可以 用list() 函数将可迭代变量转化为列表类型
    a = "text"
    a_list = list(a)
    

    3 )list的索引( 和字符串的索引访问方式一样)

    4)list常用的方法:

    方法 用法
    count(value) 返回列表中value的个数
    append(x) 列表尾部追加元素,没有返回值,表示原地修改
    insert(index , x) 在指定的索引index 处插入元素x
    extend(iterable) 将可迭代对象的元素添加进来
    remove(value) 从左到右查找第一个匹配的value值,移除该元素
    pop([index]) 将列表下标为index的元素删除并返回
    reverse() 列表元素反转
    clear() 清除,列表所有元素,剩下一个空列表
    sort(key = None , reverse = Flase) 将列表元素排序,返回None , reverse = True ,降序
    index(value[ , start , stop]) 通过value值,从指定区间查找列表内的元素是否匹配
    copy() 生成一个新列表,复制list所有元素

    示例:

    #  创建列表a
    a = [1,2,3,4,5]
    
    ##################  向列表中添加元素的三种方法
    a.append("wo")                           #   返回 [1, 2, 3, 4, 5, 'wo']
    a.insert(1 , "wo")                         #   返回[1, 'wo', 2, 3, 4, 5] , 在指定位置添加
    a.extend([7,8,9])                          #   返回[1, 2, 3, 4, 5, 7, 8, 9]
    
    ##################  删除列表中元素的4中方法 pop() , remove() , clear()
    a.pop(1)                                         #     pop(index),输入索引值, 返回[1, 3, 4, 5]
    a.remove(1)                            #     remove(值) , 输入想删除的元素,返回[2, 3, 4, 5]
    a.clear()                                          #     删除a中所有元素,返回空列表
    del  a[0]                                           #     删除a[0] , 返回[2, 3, 4, 5]
    del                                                     #     整个删除a 
    
    ##################  统计和寻找元素的方法 count() , index()
    b = [1,1,1,1,2,3,4,5,5,6]
    # count() 用于返回列表中指定元素出现的次数
    b.count(1)                                      #  返回4
    # index()  , 返回指定元素在列表中首次出现的位置
    b.index(5)                                      # 返回值为7
    
    ##################   对列表进行排序的方法 sort() , reverse()
    c = [1,7,4,2,56,32,71]
    # sort方法默认升序 , 但是加上参数 reverse = T,就是倒序
    c.sort()                                             #无返回值,原地修改  此时 c = [1, 2, 4, 7, 32, 56, 71]
    c.sort(reverse = True)                # 同样是原地修改  此时 c = [71, 56, 32, 7, 4, 2, 1]
    # reverse() 将列表元素反转
    c.reverse()                                      # 无返回值 ,原地修改 此时 c = [71, 32, 56, 2, 4, 7, 1]
    

    5)列表支持的运算符 + *

    d = [1,2,3]
    # 注意,列表只能和列表类型相加
    d = d + [4]  /  d += [4]                          #  返回[1,2,3,4]
    # 乘法也是一样,不过是列表里的元素重复罢了
    d = d * 2    / d *= 2                               # 返回[1,2,3,1,2,3]
    

    考点二:元组

    元组的特点:

    • 所有元素放在圆括号内()
    • 如果元组中只有一个元素,必须在最后增加一个逗号 ,
    • 使用tuple创建空元组
    • 支持双向索引,但不可变!(所以我们在列表里学的增加、删除、修改、排序都没办法使用)
    • 个人认为元组可以类比字符串

    元组和列表的异同点:

    元组和列表的异同.png

    注意:del 在元组里并不能删除元素,而是将整个元组删除。

    考点三:字典

    1,字典的特点:

    • dict()生成一个空字典,也可以直接用{}生成
    • 键和值通过冒号连接组成的集合{key1 : value1, key2 : value2 , key3:value3}
    • 字典内的键值对没有顺序且不能重复
    • 元素类型可以不同
    • 字典中是以键值对存储的,因此键就是值的索引
    • 字典可变,可以存储任何类型
    • 个人理解字典就跟我们日常用的字典一样,有目录,有内容,通过目录访问内容

    2,字典的访问:类似查字典,一个key 对应一个value

    d = {"name" : "xiaowang" , "age" : "18" ,"sex":"man"}
    d["name"]             # xiaowang 
    d["face"]                # 返回 KeyError错误
    # 字符串,列表,元组等采用数字索引,字典采用key 索引
    

    3,字典的操作方法:

    方法 描述
    d.keys() 返回字典所有键信息
    d.values() 返回字典中所有值信息
    d.items() 返回字典中所有的键值对(键值对以元组表示)
    d.get(key , set) 键存在则返回相应值,不存在则返回默认值set
    d.clear() 清空字典,留下{}
    d.popitem() 随机从字典取出一个键值对,以元组形式返回,同时将该键值对返回
    d.pop(key ,set) 键存在则返回相应值,同时删除键值对,否则返回set
    d = {"name" : "xiaowang" , "age" : "18" ,"sex":"man"}
    d.keys()          #   返回 dict_keys(['name', 'age', 'sex'])
    d.values()      #   返回 dict_values(['xiaowang', '18', 'man'])
    #  一般我们都希望更好的使用这个结果,我们用list转化为列表使用
    list(d.keys())     #  返回['name', 'age', 'sex']
    list(d.values()) #  返回['xiaowang', '18', 'man']
    ####取所有键值对
    d.items()        #dict_items([('name', 'xiaowang'), ('age', '18'), ('sex', 'man')])
    print(list(d.items()))         #[('name', 'xiaowang'), ('age', '18'), ('sex', 'man')]
    ####取键对应的值
    d.get("name")          # 返回"xiaowang"
    d.get("face", "noitem")   # 返回 noitem
    
    ###想删除字典中的元素  用del
    del d["name"]         #返回{'age': '18', 'sex': 'man'}
    

    考点四:集合

    1 , 集合的特点:

    • 集合中的元素不可重复,且元素类型是不可变类型
    • 集合元素没有顺序,不能比较,不能排序
    • 用花括号{}表示,没有索引和位置的概念
    • 用set()创建,不能用{}

    2, 集合的4个操作符

    操作符及运算 描述
    S-T 返回新集合,元素在S中而不在T中
    S&T 返回新集合,元素是S和T的交集
    S | T 返回新集合,元素是S和T的并集
    S^T 返回新集合,是S和T并集减去他们的交集

    3,集合操作方法:

    方法 描述
    add(x) 若x不在集合中,则把x增加到该集合中
    remove(x) 若x在,则从集合中移除,不在则报错
    discard (x) 若x在,从集合删除x,不在也不会报错
    pop() 随机删除并返回集合中的一个元素
    update() 返回集合元素个数
    clear() 移除集合中所有元素
    x in s x 是集合的元素,返回True ,否则返回Flase
    x not in s x 不是集合的元素,返回True ,否则返回Flase
    ### 向集合里添加元素 update()  , add()
    ##### add() 添加新元素,如果该元素存在则忽略该操作,不返回异常
    a = {1,2,3}
    a.add(4)                    #  返回{1,2,3,4}
    
    #### update()方法合并另外一个集合的元素到当前集合,并自动去重
    a.update({4,5})       #  返回{1,2,3,4,5}
    
    #### 删除元素的方法 discard() , clear() , remove , pop()
    s = {1,2,3}
    s.pop()                        # 随机删除一个元素并返回元素
    s.discard(5)               # 从集合中删除一个特定元素,但是此处没5 ,所以没有返回
    s.remove(5)               # 此处没5 ,但是抛出异常
    

    小知识:利用集合不重复的特点,常常用于去重

    a = [1,1,1,2,3,4,5,5,6,7]
    set(a)                                #    {1, 2, 3, 4, 5, 6, 7}
    list(set(a))                       #    [1, 2, 3, 4, 5, 6, 7]
    

    相关文章

      网友评论

          本文标题:python组合数据类型

          本文链接:https://www.haomeiwen.com/subject/htzifhtx.html