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


Posted in Python onNovember 20, 2014

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

Python 相关文章推荐
Python兔子毒药问题实例分析
Mar 05 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
python3用PIL把图片转换为RGB图片的实例
Jul 04 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
简单了解django orm中介模型
Jul 30 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
wxPython实现文本框基础组件
Nov 18 Python
python实现加密的方式总结
Jan 19 Python
Python @property装饰器原理解析
Jan 22 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
python有证书的加密解密实现方法
Nov 19 #Python
Python采用socket模拟TCP通讯的实现方法
Nov 19 #Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 #Python
python端口扫描系统实现方法
Nov 19 #Python
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 #Python
python中urllib模块用法实例详解
Nov 19 #Python
python统计一个文本中重复行数的方法
Nov 19 #Python
You might like
一些星际专用术语解释
2020/03/04 星际争霸
对盗链说再见...
2006/10/09 PHP
php微信开发接入
2016/08/27 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
Javascript typeof 用法
2008/12/28 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
Django中create和save方法的不同
2019/08/13 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
Python3的socket使用方法详解
2020/02/18 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python eval函数介绍及用法
2020/11/09 Python
python绘制雷达图实例讲解
2021/01/03 Python
python中PyQuery库用法分享
2021/01/15 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
JAVA程序员面试题
2012/10/03 面试题
电气工程自动化求职信
2014/03/14 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
捐书倡议书
2014/08/29 职场文书
Python使用Web框架Flask开发项目
2022/06/01 Python