python的几种数据结构

2018-03-13  本文已影响0人  佑___

Python 中 几种数据结构的整理: 列表、字典、元组、集合

列表 : shoplist = ['apple', 'mango', 'carrot' , 'banana']

字典 : di = {'a' : 123,'b' : 'something'}

集合 : jihe = {'apple', 'pear', 'apple'}

元组 : t = 123,456,"hello"

1. 列表

    空列表 :  a = []

    函数方法 : a.append(3)                          >>>[3]

                 a.extend([3,4,5])                        >>>[3,3,4,5]      添加一个列表序列

                 a.insert(1, 'hello')                        >>>[3,'hello',3,4,5]

                 a.remove(3)                                >>>['hello',3,4,5]   删除第一个出现的3,没有3则报错

                 a.pop()                                        >>>['hello',3,4]

                 a.pop(0)                                      >>>[3,4]

                 a.index(4)                                    >>>1      返回出现的第一个4的下标

                 a.count(3)                                   >>>> 1列表中元素3的个数

                a.sort                                             >>> [3,4]   排序

                a.reverse()                                    >>> [4,3]   反序

删除元素的方法

                a.remove(3)                                    通过值删除元素,删除第一个参数值的元素

                a.pop()                                            通过下标删除元素,默认删除列表最后一个值,带参数则删除下标为参数的元素

                del a[0]                                             通过下标删除元素

                del a[2:4]                                           删除a表下表为2,3的元素

                del a[:]                                                删除a列表所有元素

                del a                                                    删除列表

列表推导式:

                vec = [2,4,6]

                [3*x for x in vec if x<6]                        >>>[6,12]     3*2,3*4

                vec2 = [1,2,3]

                [x*y for x in vec for y in vec2]              >>>[2,4,6,4,8,12,6,12,18]

嵌套列表推导式

                mat = [

                [1,2,3]

                [4,5,6]

                [7,8,9]

                ]

                print([[row[i] for row in mat] for i in [0,1,2]])

                >>>[[1,4,7],[2,5,8],[3,6,9]]

        思考 : list(zip(mat))  和list(zip(*mat))结果会有什么不同

2. 元组

        空元组 : t =()

        元组赋值:    t = (123,345)

                    t[]     >>>123

3. 字典

        d = {'Jack' : 'jack@mail.com','Tom':'Tom@main.com'}

        d['Jack']                                 >>>'jack@mail.com'

        d['Jack']                                >>>{'Jim': 'Jim@sin.com', 'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}              

        del d['Jim']                            >>>{'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}

        list(d.keys())                          将返回一个字典中所有关键字组成的无序列表

        sorted(d.keys())                     将返回一个字典中所有关键字组成的排序列表

        dict()                                       构造函数可以直接从key-value对中创建字典

        dict([('Tim',123),('Tiny',234)])    >>>{'Tiny': 234, 'Tim': 123}   

        推导式创建字典 :

             {d2:d2+'@main.com' for d2 in list(d.keys())}

            >>>{'Jack': 'Jack@main.com', 'Tom': 'Tom@main.com'}

    练习: 循环输出字典中的键值对

    for name.email in d.items():    

                  print(name,email)

4. 集合

   空集合 : A =set()        想要创建空集合,必须使用set()

    演示:

        basket = {'apple','orange','apple'}    >>>{'orange', 'apple'}    注意重复的元素只显示一个?

        'apple' in basket              >>>True

        'pear' in basket            >>>False

    集合的数学运算:    

        a = set('ababcdabca')        >>>{'c', 'b', 'a', 'd'}

        b = {'a','b','m'}            >>>{'b', 'a', 'm'}

        a - b        >>>{'c', 'd'}

        b - a        >>>{'m'}

        a | b        >>>{'c', 'd', 'b', 'a', 'm'}

        a & b        >>>{'a','b'}

        a ^ b        >>>{'c','d','m'}

    集合推导式:

       {x for x in a if x not in 'ab'}    >>>{'c','d'}

上一篇下一篇

猜你喜欢

热点阅读