目录:

  • 列表

    •  列表基本操作
    •  列表的操作符
    •  列表的函数和方法
  • 元组

介绍:

列表是一种可变的有序集合,可以进行访问、添加和删除操作。

元组是一种不可变的有序集合,可以访问。

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的更多相关文章

  1. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  2. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...

  3. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  4. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  5. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  6. python中的字典(dict),列表(list),元组(tuple)

    一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...

  7. python中列表,元组,字符串互相转换

    列表,元组和字符串python中有三个内建函数:,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示 >>> s = "xxxxx& ...

  8. Python:列表,元组

    一.列表 和字符串一样,列表也是序列类型,因此可以通过下标或者切片操作访问一个或者多个元素.但是,不一样的,列表是容器类型,是可以进行修改.更新的,即当我们进行修改列表元素,加入元素等操作的时候,是对 ...

  9. python中列表,元组,字符串如何互相转换

    python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...

随机推荐

  1. 使用mysql将备份的sql文件导入到数据库

    一.背景 承接上一篇文章<如何使用mysqldump备份数据库>,数据库备份后将用于恢复或者在多个测试环境上迁移.下面描述如何通过批处理文件实现数据加载恢复. 二.环境准备 跟上一篇一样, ...

  2. Android OpenGL ES 开发(八): OpenGL ES 着色器语言GLSL

    前面的文章主要是整理的Android 官方文档对OpenGL ES支持的介绍.通过之前的文章,我们基本上可以完成的基本的形状的绘制. 这是本人做的整理笔记: https://github.com/re ...

  3. Go实现短url项目

    首先说一下这种业务的应用场景: 把一个长url转换为一个短url网址 主要用于微博,二维码,等有字数限制的场景 主要实现的功能分析: 把长url的地址转换为短url地址 通过短url获取对应的原始长u ...

  4. springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法

    springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  5. 如何写出如散文般的代码――《代码整洁之道》读书笔记(Ch1-Ch3)

    不知道有多少人像我一样,程序出现问题时添加函数添加变量解决,变量名用a,b,c等"简单"的字母来表示.不知道有多少人像我一样,看完自己的代码,心里暗骂"什么玩意儿!&qu ...

  6. linux下安装软件

    业界的软件标准安装有三步:configure,make,make install,下面是它们的定义: ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不 ...

  7. Java集合详解及List源码分析

    对于数组我们应该很熟悉,一个数组在内存中总是一块连续的存储空间,数组的创建使用new关键字,数组是引用类型的数据,一旦第一个元素的位置确定,那么后面的元素位置也就确定了,数组有一个最大的局限就是数组一 ...

  8. poj-1028 -网页导航

    Description Standard web browsers contain features to move backward and forward among the pages rece ...

  9. 【Python】 SSH连接的paramiko

    paramiko *paramiko需要PyCrypto模块的支持 paramiko支持通过SSH协议进行一些操作,比如远程执行命令,上下传文件等等 用法: ① 远程命令 ssh = paramiko ...

  10. 【Linux】 字符串和文本处理工具 grep & sed & awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...