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设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
python将每个单词按空格分开并保存到文件中
Mar 19 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 Python
Python requests获取网页常用方法解析
Feb 20 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
Python实现照片卡通化
Dec 06 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
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP 加密解密内部算法
2010/04/22 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
javascript实现文字无缝滚动效果
2017/08/26 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
python读写json文件的简单实现
2017/04/11 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python flask搭建web应用教程
2019/11/19 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
上班打牌检讨书
2014/02/07 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
python装饰器代码解析
2022/03/23 Python
python 单机五子棋对战游戏
2022/04/28 Python
Mysql 文件配置解析介绍
2022/05/06 MySQL