python学习笔记之列表(list)与元组(tuple)详解


Posted in Python onNovember 23, 2017

前言

最近重新再看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 'list'>
>>> type(a_list2)
<type 'set'>

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

>>> a_tuple=()
>>> a_tuple
()
>>> a_tuple2=tuple()
>>> a_tuple2
()
>>> type(a_tuple)
<type 'tuple'>
>>> type(a_tuple2)
<type 'tuple'>

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

定义完对象就可以对对象进行操作了。由于元组(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 相关文章推荐
Python 多线程抓取图片效率对比
Feb 27 Python
python 文件操作api(文件操作函数)
Aug 28 Python
python print 按逗号或空格分隔的方法
May 02 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
Django单元测试工具test client使用详解
Aug 02 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
python利用opencv保存、播放视频
Nov 02 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
Python结合百度语音识别实现实时翻译软件的实现
Jan 18 Python
python数字图像处理之高级滤波代码详解
Nov 23 #Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 #Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 #Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 #Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 #Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 #Python
python分析作业提交情况
Nov 22 #Python
You might like
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
php获取url参数方法总结
2014/11/13 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
js根据日期判断星座的示例代码
2014/01/23 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
python初步实现word2vec操作
2020/06/09 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Python 高效编程技巧分享
2020/09/10 Python
canvas线条的属性详解
2018/03/27 HTML / CSS
2014年党支部学习材料
2014/05/19 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
格列夫游记读书笔记
2015/07/01 职场文书