python 之 列表list && 元组tuple
目录:
- 列表
- 列表基本操作
- 列表的操作符
- 列表的函数和方法
- 元组
介绍:
列表是一种可变的有序集合,可以进行访问、添加和删除操作。
元组是一种不可变的有序集合,可以访问。
1、列表的基本操作
创建列表
ls = ['mary', 'tom', 'kate']
['mary', 'tom', 'kate']
注意:列表中的元素可以为不同类型,且可以为列表
In [29]: ls2=[1,2,'d','fairy',[1,4]]
In [30]: ls2
Out[30]: [1, 2, 'd', 'fairy', [1, 4]]
列表元素的访问和截取
In [7]: ls[1]
Out[7]: 'tom' In [8]: ls[-1]
Out[8]: 'kate' // 包含1从1开始的元素:ls[1],ls[2]
In [11]: ls[1:]
Out[11]: ['tom', 'kate'] // 不包含2到2为止的元素:ls[0],ls[1]
In [13]: ls[:2]
Out[13]: ['mary', 'tom'] // ls中的所有元素
In [9]: ls[:]
Out[9]: ['mary', 'tom', 'kate']
更新和添加列表元素
// 更新列表元素
In [92]: ls[1]='jerry'
In [93]: ls
Out[93]: ['mary', 'jerry', 'kate']
// 在列表尾部添加元素 'me'
In [16]: ls.append('me')
In [17]: ls
Out[17]: ['mary', 'tom', 'kate', 'me'] // 在列表索引为2处添加元素 'jack'
In [18]: ls.insert(2,'jack')
In [19]: ls
Out[19]: ['mary', 'tom', 'jack', 'kate', 'me']
注意:不存在的元素不可以用索引来引用或添加
// 注意:不存在的元素不可以用索引来引用或者添加
In [14]: ls[3]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-14-bc53f97bfb95> in <module>()
----> 1 ls[3]
IndexError: list index out of range In [15]: ls[3]='me'
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-15-41a017d867bd> in <module>()
----> 1 ls[3]='me'
IndexError: list assignment index out of range
删除列表元素
// 删除列表的最后一个元素,且返回此元素
In [20]: ls.pop()
Out[20]: 'me'
In [21]: ls
Out[21]: ['mary', 'tom', 'jack', 'kate'] // 删除列表索引为2处的元素且返回此元素
In [22]: ls.pop(2)
Out[22]: 'jack'
In [23]: ls
Out[23]: ['mary', 'tom', 'kate'] // 移除列表中匹配为'tom'的元素,不返回任何值
In [25]: ls.remove('tom')
In [26]: ls
Out[26]: ['mary', 'kate'] // 清空列表
lIn [27]: ls.clear()
In [28]: ls
Out[28]: []
// 删除索引为0的列表元素
In [88]: ls
Out[88]: [1, 2]
In [89]: del ls[0]
In [90]: ls
Out[90]: [2]
删除列表
In [96]: lss=[1,2,3]
In [97]: del lss
In [98]: lss
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-98-3ee6987b75c4> in <module>()
----> 1 lss NameError: name 'lss' is not defined
2、列表操作符
// 列表长度
In [33]: len([1,2,3])
Out[33]: 3 // 列表加
In [34]: [1,2,3]+[4,5,6]
Out[34]: [1, 2, 3, 4, 5, 6] // 列表乘
In [35]: ['Echo']*3
Out[35]: ['Echo', 'Echo', 'Echo'] // 判断是否在列表中
In [36]: 1 in [1,2,3]
Out[36]: True In [37]: 1 in [4,2,3]
Out[37]: False
3、列表的函数和方法
函数
// 返回列表长
In [38]: len([1,2,3])
Out[38]: 3 // 返回列表中最大元素
In [39]: max([1,2,3])
Out[39]: 3 // 返回列表中最小元素
In [40]: min([1,2,3])
Out[40]: 1 // 将元组转化为列表
In [41]: list((1,2,3))
Out[41]: [1, 2, 3]
方法
// 统计列表中'a'出现的次数,并返回次数
In [70]: ['a','b','f',1,'a',3].count('a')
Out[70]: 2 // 统计列表中'a'第一次出现的索引,并返回索引号
In [73]: ['a','b','f',1,'a',3].index('a')
Out[73]: 0 // 在列表后追加l另一列表中多个元素,不返回
In [42]: ls=['a','b','f',1,'a',3]
In [45]: ls.extend([1,7,8])
In [46]: ls
Out[46]: ['a', 'b', 'f', 1, 'a', 3, 1, 7, 8] // 列表的元素反转,不返回
In [49]: ls.reverse()
In [50]: ls
Out[50]: [8, 7, 1, 3, 'a', 1, 'f', 'b', 'a'] // 列表的排序(可以在sort([func])里指定排序用的方法),不返回
In [53]: ls=[1,4,2,7,3]
In [54]: ls.sort()
In [55]: ls
Out[55]: [1, 2, 3, 4, 7]
注意:以上不返回的函数和方法就是对列表本身做修改,不会生成新的列表,这里一定要注意!
在python3.6中,赋值和copy方法是一样的:
In [80]: ls=[1,2,3]
// 赋值
In [81]: ls_=ls
// copy方法
In [82]: ls_c=ls.copy() In [83]: ls_
Out[83]: [1, 2, 3]
In [84]: ls_c
Out[84]: [1, 2, 3] // 改变ls本身的值
In [85]: ls=[1,2] // 两者皆不改变
In [86]: ls_
Out[86]: [1, 2, 3]
In [87]: ls_c
Out[87]: [1, 2, 3]
我本地的python2.7结果和以上是一样的。
注意:在python2中有cmp(list1,list2)函数,可以比较两个列表是否相等,但是在python3中没有这个函数
// python2.7中
>>> cmp([1,2,3],[4,5,6])
-1
>>> cmp([1,2,3],[1,2,3])
0 // python3.6中
In [100]: cmp([1,2,3],[4,1,2])
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-100-5bb17d70d0be> in <module>()
----> 1 cmp([1,2,3],[4,1,2]) NameError: name 'cmp' is not defined
4、元组
元组的操作和列表基本一致,需要注意的几个地方是:
元组的创建是 ” () “,列表的创建是 " [] ", 列表只有一个元素时创建没有问题,但是如果元素只有一个元素,需要在元素后加”,“,否则会被认为只是一个元素本身,元组的创建可以不加” () “;
// 加括号创建
In [101]: tp=(1,2,3)
In [102]: tp
Out[102]: (1, 2, 3) // 不加括号创建
In [103]: tp=1,2,3
In [104]: tp
Out[104]: (1, 2, 3) // 只有一个元素且不加逗号,不会被识别为元组
In [105]: tp=(1)
In [106]: type(tp)
Out[106]: int // 只有一个元素但是加逗号,会被识别成元组
In [107]: tp=(1,)
In [108]: type(tp)
Out[108]: tuple
除上述不同之外,元组和列表的访问、截取、操作符和函数都是一样的,元组没有更新、添加和删除元素的操作,但是可以删除元组本身,和list的删除一样;
In [109]: del tp
In [110]: tp
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-110-6fc78332fdd4> in <module>()
----> 1 tp
python 之 列表list && 元组tuple的更多相关文章
- python基础之列表list元组tuple
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...
- python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary
#python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...
- Python中列表,元组,字典,集合的区别
参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...
- Python基础-列表、元组、字典、字符串
Python基础-列表.元组.字典.字符串 多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...
- Python基础------列表,元组的调用方法
Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...
- python中的字典(dict),列表(list),元组(tuple)
一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...
- python中列表,元组,字符串互相转换
列表,元组和字符串python中有三个内建函数:,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示 >>> s = "xxxxx& ...
- Python:列表,元组
一.列表 和字符串一样,列表也是序列类型,因此可以通过下标或者切片操作访问一个或者多个元素.但是,不一样的,列表是容器类型,是可以进行修改.更新的,即当我们进行修改列表元素,加入元素等操作的时候,是对 ...
- python中列表,元组,字符串如何互相转换
python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...
随机推荐
- 迭代器Iteration
定义: 可以被next()调用并不断返回下一个值的对象成为迭代器Iterator 与可迭代(Iterable)的区别: Iterable定义为:凡是作用于for循环的对象.比如list(),dict{ ...
- 32.Django form组件
Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 创建Form类时,主要涉及到 [ ...
- Maven打包的三种方式(转)
Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...
- Git - 可视化冲突解决工具P4Merge
P4Merge P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具). 下载地址: https://www.perforce.com/downloads/visual-me ...
- Java运行时内存划分
这篇文章可以说是摘抄自周志明的<深入理解Java虚拟机>,但是加上了自己的理解,印象可以更深些. Java虚拟机在执行Java程序的时候会把他所管理的内存划分为若干个不同的数据区域,各个区 ...
- Redis 集群环境添加节点失败问题
最近在给公司网管系统Redis集群环境添加节点时候遇到一个问题,提示新增的Node不为空: [root@node00 src]# ./redis-trib.rb add-node --slave -- ...
- Java中删除第一个集合中以某某开头的元素,删除第二个集合中以某某结尾的元素,并合并成一个集合
import java.util.ArrayList; import java.util.List; public class Test { public static void main(Strin ...
- JDK1.8源码(五)——java.util.ArrayList 类
关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实 ...
- USACO Humble Numbers
USACO Humble Numbers 这题主要是两种做法,第一种是比较常(jian)规(dan)的-------------用pq(priority_queue)维护,每次取堆中最小值(小根堆) ...
- 基于php编写的新闻类爬虫,插入WordPress数据库
这个爬虫写的比较久远,很久没有更新博客了. 1.首先思路是:通过php的curl_setopt()函数可以方便快捷的抓取网页. 2.什么样的新闻吸引人呢,当然的热点新闻了.这里选百度的搜索风云榜,获取 ...