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中for循环的使用方法
May 14 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
Python操作MySQL模拟银行转账
Mar 12 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
python实现微信小程序自动回复
Sep 10 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
Python matplotlib可视化实例解析
Jun 01 Python
pytorch中的weight-initilzation用法
Jun 24 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 Python
python爬虫之selenium库的安装及使用教程
May 23 Python
Python+tkinter实现高清图片保存
Mar 13 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
解析csv数据导入mysql的方法
2013/07/01 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
js 内存释放问题
2010/04/25 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
Python3实现并发检验代理池地址的方法
2016/09/18 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Python 获取项目根路径的代码
2019/09/27 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
python定义类的简单用法
2020/07/24 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
家长会学生演讲稿
2014/04/26 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
计划生育汇报材料
2014/12/26 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
详解Laravel框架的依赖注入功能
2021/05/27 PHP
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫