您的位置:首页 > 理论基础 > 数据结构算法

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

2014-11-20 00:00 961 查看
本文详细归纳整理了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[0] >>>123

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

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

    d['Jim'] = 'Jim@sin.com'    >>>{'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'}

希望本文所述对大家的python程序设计有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: