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使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
Python之批量创建文件的实例讲解
May 10 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
python模块常用用法实例详解
Oct 17 Python
Python获取对象属性的几种方式小结
Mar 12 Python
python 连续不等式语法糖实例
Apr 15 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 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
一个取得文件扩展名的函数
2006/10/09 PHP
php防注
2007/01/15 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python日期操作学习笔记
2008/10/07 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python管理Windows服务小脚本
2018/03/12 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
论文答谢词
2015/01/20 职场文书
简历自我评价优缺点
2015/03/11 职场文书
培训督导岗位职责
2015/04/10 职场文书
python 逐步回归算法
2021/04/06 Python