前言

最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧——我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记忆。

现在读到了列表(list)、元组(tuple)、集合(set)和字典(dict)四种在python内置的重要的数据结构。我只是想记录一下列表(list)和元组(tuple)比较容易搞混的地方和阐述一遍列表(list)和元组(tuple)比较常用的一些方法。

列表(list)与元组(tuple)

首先,对于列表(list)和元组(tuple)的概念有一个清楚的了解,清楚列表(list)是一个可变的序列,而元组(tuple)是一个不可变的序列。两种数据结构都是python内置的数据类型,使用非常方便。

对于这两种常用的数据类型是怎么样定义的吧。定义一个对象时使用列表(list)和元组(tuple)方法的必要工作。

>>> a_list=[]

>>> a_list

[]

>>> a_list2=set()

>>> a_list2

set([])

>>> type(a_list)

>>> type(a_list2)

以上使用了两种方法定义了一个空白的列表(list),这样的定义可要比C++的定义清晰明了,简单易懂了~!而定义一个空的元组也是一样的方法,不过定义一个空白的元组未免是白费力气的工作吧。不过还是show出来看看:

>>> a_tuple=()

>>> a_tuple

()

>>> a_tuple2=tuple()

>>> a_tuple2

()

>>> type(a_tuple)

>>> type(a_tuple2)

这样子定义一个空白的元组真是没有任何意义。

定义完对象就可以对对象进行操作了。由于元组(tuple)是不可以变的列表,其方法少得可怜,所以就不说了,在这里仅讨论列表(list)的方法。

上面我们定义了一个空白的列表(list),一个列表(list)既然创建了,一定是用来储存数据的啦,所以首先介绍的是在列表中增加元素,在列表(list)增加元素的方法有3个(据我所知而已),分别是:append、extend、insert。

@append方法是在列表末尾追加新的元素。只可以一个一个地添加,如果你不想这么麻烦,请看下一种方法extend。

@extend方法是在列表末尾一次性追加另一个列表中的多个值。

@insert方法就可以在列表(list)的任何位置插入元素。

详细的应用请看下面:

>>> a_list=[]

>>> a_list.append(1)

>>> a_list

[1]

>>> a_list.append('python')

>>> a_list

[1, 'python']

>>> a_list.extend([3,'ruby','perl',8,'julia'])

>>> a_list

[1, 'python', 3, 'ruby', 'perl', 8, 'julia']

>>> a_list.insert(1,'javascript')

>>> a_list

[1, 'javascript', 'python', 3, 'ruby', 'perl', 8, 'julia']

>>> a_list.insert(2,2)

>>> a_list.insert(4,'php')

>>> a_list

[1, 'javascript', 2, 'python', 'php', 3, 'ruby', 'perl', 8, 'julia']

酷吧,是不是感到很奇怪呢?列表(list)里的元素竟然可以是不同类型的。

说完了添加元素到列表(list)中,下面我们应该说一下怎么样在列表中删除掉元素。

列表(list)中删除元素的方法有pop,remove.

@pop方法很简单,此方法返回值的被删除的元素,这一点请记住。

@remove方法是移除列表中的某个元素。

实例如下:

>>> a_list

[1, 'javascript', 2, 'python', 'php', 3, 'ruby', 'perl', 8, 'julia']

>>> a_list.sort()

>>> a_list

[1, 2, 3, 8, 'javascript', 'julia', 'perl', 'php', 'python', 'ruby']

>>> a_list.pop()

'ruby'

>>> a_list.pop(0)

>>> a_list.remove(2)

>>> a_list

[3, 8, 'javascript', 'julia', 'perl', 'php', 'python']

请注意pop的用法,如果pop函数没有参数的话,直接删除列表末尾的元素。

此外,列表的方法还有很多,例如sort(排序)、reverse(方向存放元素)、count(计算列表中相同元素的个数)、index(指引位置)……

==================================================================================================

对于不可变的元组(tuple)是不是真的不可以改变呢?

如果你使用了元组这个东西,然而你又想在某个地方改变它,怎么办呢?

这个问题当然是可以解决的啦。python中有两个元素list、tuple可以解决问题。

就是先把元组强制转换成列表,进行修改然后再转换成元组。工作量是大了点,代价而且很高。

>>> a_tuple=(0,1,2,4,5,6,7,8,9)

>>> list_=list(a_tuple)

>>> list_.insert(3,3)

>>> a_tuple=tuple(list_)

>>> a_tuple

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

Python list和tuple的相互转换

list转为tuple:

temp_list = [1,2,3,4,5]

将temp_list进行强制转换:tuple(temp_list)

查看是否转换成功:print type(temp_list)

tuple 转为list:

temp_tuple = (1,2,3)

方法类似,也是进行强制转换即可:list(temp_tuple)

查看是否转换成功:print type(temp_tuple)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

本文标题: python学习笔记之列表(list)与元组(tuple)详解

本文地址: http://www.cppcns.com/jiaoben/python/212017.html

python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解相关推荐

  1. Ext.Net学习笔记22:Ext.Net Tree 用法详解

    上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...

  2. 【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器

    本文属于[Azure 架构师学习笔记]系列. 本文属于[Azure Data Factory]系列. 接上文[Azure 架构师学习笔记]-Azure Data Factory (3)-触发器详解-翻 ...

  3. 【matcovnet学习笔记】objective,top1error,top5error详解

    [matcovnet学习笔记]objective,top1error,top5error详解 排名前1和前5的错误率是衡量某些解决方案成功与否的重要单位 ,要理解这三个概念,关键是要看懂下面这个多类误 ...

  4. python用缩进来写模块_python学习笔记

    一.基础简介 1.#!/usr/bin/python #!/usr/bin/python 相当于写死了 python 路径 #!/usr/bin/env python 会去环境设置寻找 python ...

  5. python文本进度条94页_Python学习笔记 | 实例4:文本进度条

    本文为中国大学MOOC<Python语言程序设计>课程学习笔记,课程主讲:嵩天老师,练习平台:Python123,参考教材:<Python语言程序设计基础> 文本进度条-简单的 ...

  6. python爬取基金历史净值_Python学习笔记之抓取某只基金历史净值数据实战案例

    摘要:这篇Python开发技术栏目下的"Python学习笔记之抓取某只基金历史净值数据实战案例",介绍的技术点是"Python学习笔记.Python.历史净值数据.学习笔 ...

  7. time库是python中处理时间的标准库_python语言time库和datetime库基本使用详解

    今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作,这篇博客花了2个半小时的时间,结合自己所学,所思,所想写作 ...

  8. python cv2 轮廓的包络 面积_Python 基于FIR实现Hilbert滤波器求信号包络详解

    在通信领域,可以通过希尔伯特变换求解解析信号,进而求解窄带信号的包络. 实现希尔伯特变换有两种方法,一种是对信号做FFT,单后只保留单边频谱,在做IFFT,我们称之为频域方法:另一种是基于FIR根据传 ...

  9. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

最新文章

  1. java平衡二叉树,最全Java知识总结
  2. Spring Boot 多模块项目实践(附打包方法)
  3. 盛大云主机 就是价格有点贵啊
  4. MyCat分布式数据库集群架构工作笔记0012---高可用_Mycat双主双从复制原理
  5. Docker入门之四搭建私有仓库
  6. Linux 命令整理-tailf
  7. Requests 高级用法 —2.18.1 文档
  8. 活动回顾 I 《传奇动物园》项目团队沙盘演练圆满结束!
  9. 2015到3020计算机参考文献,同等学力相关论文范文素材,与计算机网络参考文献2016年相关硕士毕业论文...
  10. 如何使用微信小程序第三方UI组件库
  11. honeyview(蜂蜜浏览器)将图片置于顶层
  12. android 微信浮窗实现_Android仿微信文章悬浮窗效果的实现代码
  13. 如何做gif动图?手把手教你在线制作动图
  14. Winform中HelpButton的用法总结
  15. 登录samba后提示“你可能没有权限访问网络资源”的解决方法
  16. Invalid component name: “_Ctor“. Component names should conform to valid cus
  17. 自动抓取app数据的攻与防
  18. dtree做权限控制
  19. 也谈Eclipse未自动在gen目录下生成R.java
  20. NyistOJ 2 括号匹配(栈)

热门文章

  1. ELK学习3_使用redis+logstash+elasticsearch+kibana快速搭建日志平台
  2. WeChat微信小程序网易云音乐播放链接方法
  3. PHP无刷新上传面向对象写法iframe
  4. JS百度地图高德地图API的接入与使用
  5. 元神一直显示连接服务器失败,原神连接服务器失败是什么情况-提示连接服务器失败处理办法-去秀手游网...
  6. python系统关键字_python基础之常用关键字总结
  7. 微信小程序 欢迎界面开发的实例详解
  8. java调用c写的dll jna_jna调用c编写的dll
  9. cap流程图_3D流程图
  10. scrapy 中爬取时被重定向_一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程...