目录:

  • 列表

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

介绍:

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

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

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. js复制内容到剪贴板

    我们web上的复制,有时候尽管可以用鼠标选中,然后复制,但是某些时候,文字不方便选中.因此,我们自定义一个复制按钮,然后通过点击它,把想要的内容复制到剪贴板上.我归纳总结了几种方法: 1.ZeroCl ...

  2. c#多线程同步之Semaphore

    一提到Semaphore(信号量)的使用,还挺有意思的,它允许多个线程同时访问多个稀有资源,我立马想到银行的ATM机取钱的场景.看下面的代码: ); public static void StartT ...

  3. javascript DOM操作 节点的遍历

    通过javascript的遍历可以由一个节点来查找它的子节点(childNodes).兄弟节点(nextSibling/previousSibling)和父节点(parentNode). 代码说明: ...

  4. (转)regex类(个人理解)

    regex类(个人理解)   C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找 ...

  5. css多浏览常见问题

    关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HA ...

  6. Windows Server 2019 预览版介绍

    在Windows server 2012.Windows server 2016还未完全普及的情况下,昨天Windows Server团队宣布Windows Server 2019将在2018年的下半 ...

  7. MySQL常用的查询命令

    MySQL常用的查询命令 author: headsen chen   2017-10-19  10:15:25 个人原创.转载请注明作者,出处,否则依法追究法律责任 1,查询现在的时间:mysql& ...

  8. lsof命令各个参数

    lsof `which httpd`  哪个进程在使用apache的可执行文件lsof /etc/passwd ------------ 哪个进程在占用/etc/passwdlsof /dev/hda ...

  9. 微软Skype Linux客户端全新发布

    前两天,微软说要给“Linux 用户带来一个令人兴奋的新闻”,今天,这个新闻来了.它刚刚为 Linux 发布了一个新的 Skype 客户端. 此次发布,微软为 Linux 带来的 Skype 客户端与 ...

  10. 兼容的Ajax

    /** * 创建XMLHttpRequest对象 * @param _method 请求方式: post||get * @param _url 远程服务器地址 * @param _async 是否异步 ...