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 相关文章推荐
动态创建类实例代码
Oct 07 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python 读写中文json的实例详解
Oct 29 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
python高阶爬虫实战分析
Jul 29 Python
详解Django配置优化方法
Nov 18 Python
pytorch自定义二值化网络层方式
Jan 07 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
Python生成器generator原理及用法解析
Jul 20 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 Python
OpenCV-Python实现轮廓的特征值
Jun 09 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之readdir函数用法实例
2014/11/13 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
一个原生的用户等级的进度条
2010/07/03 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
Scrapy框架使用的基本知识
2018/10/21 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
护士的自我鉴定
2014/02/07 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
2015新学期开学寄语
2015/02/26 职场文书
建国大业观后感
2015/06/01 职场文书
员工考勤管理制度
2015/08/06 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript