zoukankan      html  css  js  c++  java
  • 04_Python Data Structures

    Python数据结构

    数据结构:数据个体的存储 和 数据个体与个体之间关系的存储。

    Python中有:1.序列 2.映射类型 3.无序集合

    序列:成员有序排列、通过下标偏移量进行访问。元组、字符串、列表。

    映射:依据键索引。字典。

    集合:无序,没有索引,所以只能增、删、查(For遍历),没有删除某个元素的方法。

    python中的数据结构:元组(Tuple)、列表(Lists)、字典(Dictionariy)、集(Set)

    一、元组

    元组与列表类似,不同的是元组是不可更改类型,但是元组中的列表,字典可更改。意味着不能进行增、删、改、查、排序、倒置等,Python源码中Tuple支持的操作。

    # count 统计某个元素出现的次数
    def count(self, value):  # real signature unknown; restored from __doc__
        """ T.count(value) -> integer -- return number of occurrences of value """
        return 0
    
    #获取某个值所在位置,start stop  表示可以切片
    def index(self, value, start=None, stop=None):  # real signature unknown; restored from __doc__
        """
        T.index(value, [start, [stop]]) -> integer -- return first index of value.
        Raises ValueError if the value is not present.
        """
        return 0
    
    #获取长度的方法。公共方法,list dict str都可以使用
    def len(*args, **kwargs): # real signature unknown
        """ Return the number of items in a container. """
        pass

    1.1元组 常用操作

    #1. 元组拼接
    tu = (1,2,3,4,5,6,7,1)
    tu1 = tu[0:4]  # 元组切出来的还是元组
    tu2 = tu[4:]
    tu3 = tu1 + tu2
    print(tu1)
    
    #2. 获取元组长度
    print(len(tu))  #8
    
    #3. 获取元组中 1 出现的次数
    print(tu.count(1))  # 2
    
    #4. 返回 4 的索引
    print(tu.index(4))  #3
    
    #5.删除 元组
    del tu
    print(tu) # NameError

    1.2列表

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

    li = ['a',[1,2,'a'],True,('a','n','m'),{'键':'值'}]

    1.2.1列表的操作

     1 li = ['a',[1,2,'a'],True,('a','n','m'),{'':''}]
     2 
     3 #1.增
     4 li.append('Python') #尾部添加
     5 li.extend("123") #迭代添加
     6 li[5] = 'append' # 索引加载
     7 
     8 #2.插入 任意位置插入
     9 li.insert(0,'Study')
    10 
    11 #3.删
    12 #3.1 按索引删 -> 返回被删除元素
    13 ret = li.pop(-1)
    14 print(ret)
    15 
    16 #3.2 按元素删 -> 没有返回值
    17 print(li)
    18 li.remove('a')
    19 print(li)
    20 #3.3 清空链表
    21 li.clear()
    22 print(li)
    23 #3.4 删除链表
    24 del li
    25 #4.5切片删
    26 del li[0:] #类似clear()函数
    27 
    28 
    29 #4.改
    30 #4.1 索引改
    31 li[0] = 'One'
    32 print(li)
    33 
    34 #4.2
    35 li[0:2] = 'python'  #它会把0:2先删除,然后python 一个一个的拆开插入
    36 print(li)
    37 
    38 #5.查
    39 #5.1 遍历
    40 for i in li:
    41      print(i)
    42 #5.2 切片
    43 li[0:]
    44 
    45 #6.遍历
    46 # for i in li:
    47 #     print(i)
    48 li = [1,2,5,3,6,4,7,12,9,8,11,10]
    49 #7.排序
    50 print(li)
    51 li.sort()#没有返回值,只能操作完,打印
    52 print(li)
    53 #8.倒置
    54 li.reverse()
    55 print(li)

    1.3字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的可哈希表示key必须是不可变类型,如:数字、字符串、元组。

    dic  = {'name':'Python','version':3.6,'code':3}
    
    #
    '''
    1.dic[key] 如果有相同的key,直接覆盖,否则,添加到尾部
    2.dic.setdefault()如果key在字典中,则返回其值。如果没有,则插入值为default的key,并返回default。default默认为None。
    '''
    #dic['RuntimePlatform'] = 'Win10'  {'name': 'Python', 'version': 3.6, 'code': 3, 'RuntimePlatform': 'Win10'}
    
    #dic.setdefault('ChName','派森')  {'name': 'Python', 'version': 3.6, 'code': 3, 'ChName': '派森'}
    
    
    
    #
    '''
    1.dic.pop('key') 删除一个键值对,返回被删除的值
    2.dic.pop('key','提示信息') 删除一个key,如果key不存在,返回提示信息
    3.clear() 清空dic
    4.del 删除链表
    5.del dic['key'] 删除一个键值对,不返回任何信息;如果值不存在,则会引发KeyError异常
    '''
    dic.setdefault('ChName','派森')
    #print(dic)
    #dic.pop('ChName1') 如果没有第二个参数,会报KeyError
    
    #print(dic.pop('ChNames','没有此键'))
    
    #del dic # NameError
    #del  dic['ChName1'] KeyError
    
    #dic.clear()  {} 清空字典
    
    #随机删除
    #dic.popitem() 默认删除最后一个
    
    
    #
    '''
    1.dic[]
    2.dic.update({}) 迭代更新,如果key存在,覆盖;不存在添加
    '''
    #dic['ChName'] = 'paisen' 如果存在就覆盖
    dic.update()
    print(dic)
    
    
    #
    '''
    1.dic['key']
    2.for 循环
    3.get() 如果key不存在,返回None
    4.get('key','提示信息') 如果key不存在,返回提示信息
    '''
    for k,v in dic.items() :
        print(k,v)
    
    print(dic.get('name'))
    print(dic.get('Platform','没有此键'))
    
    #遍历
    '''
    1.获取所有的键值对
    2.获取所有的键
    3.获取所有的值
    '''
    print(dic.items())
    print(dic.keys())
    print(dic.values())
    
    for k,v in dic.items():
        print(k,v)
    
    for k in dic:
        print(k,dic[k])

    二、Python中数据结构-公共函数和遍历总结

    公共方法

        def insert(self, index, p_object): # real signature unknown; restored from __doc__
            """ L.insert(index, object) -- insert object before index """
            pass
    
    
        def clear(self): # real signature unknown; restored from __doc__
            """ L.clear() -> None -- remove all items from L """
            pass
    
    
        def count(self, value): # real signature unknown; restored from __doc__
            """ L.count(value) -> integer -- return number of occurrences of value """
            return 0
    
    
        def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
            """
            L.index(value, [start, [stop]]) -> integer -- return first index of value.
            Raises ValueError if the value is not present.
            """
            return 0
    
    
    del

    in ; not in

    切片

    遍历

    1 while i < len(obj):
    2     print(obj[i])
    3 
    4 
    5 
    6 for i in iterable:
    7     print(i)
  • 相关阅读:
    《微风吹过的街道》Alpha冲刺Scrum meeting5
    《微风吹过的街道》Alpha冲刺Scrum meeting4
    小明分蛋糕题解
    小明分蛋糕(附题解)
    正确答案
    阴影面积
    双面打印
    实验十 团队作业6:团队项目用户验收&Beta冲刺
    你说什么都不对【Beta】Scrum meeting 4
    你说什么都不队【Beta】Scrum meeting 3
  • 原文地址:https://www.cnblogs.com/weihengblog/p/8352365.html
Copyright © 2011-2022 走看看