Home  >  Article  >  Backend Development  >  Python中列表、字典、元组、集合数据结构整理

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

WBOY
WBOYOriginal
2016-06-10 15:18:561790browse

本文详细归纳整理了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,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程序设计有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn