python 之 列表list && 元组tuple

目录:

  • 列表

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

介绍:

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

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

1、列表的基本操作

创建列表

1 ls = [‘mary‘, ‘tom‘, ‘kate‘]
2 [‘mary‘, ‘tom‘, ‘kate‘]

注意:列表中的元素可以为不同类型,且可以为列表

1 In [29]: ls2=[1,2,‘d‘,‘fairy‘,[1,4]]
2 In [30]: ls2
3 Out[30]: [1, 2, ‘d‘, ‘fairy‘, [1, 4]]

列表元素的访问和截取

 1 In [7]: ls[1]
 2 Out[7]: ‘tom‘
 3
 4 In [8]: ls[-1]
 5 Out[8]: ‘kate‘
 6
 7 // 包含1从1开始的元素:ls[1],ls[2]
 8 In [11]: ls[1:]
 9 Out[11]: [‘tom‘, ‘kate‘]
10
11 // 不包含2到2为止的元素:ls[0],ls[1]
12 In [13]: ls[:2]
13 Out[13]: [‘mary‘, ‘tom‘]
14
15 // ls中的所有元素
16 In [9]: ls[:]
17 Out[9]: [‘mary‘, ‘tom‘, ‘kate‘]

更新和添加列表元素

1 // 更新列表元素
2 In [92]: ls[1]=‘jerry‘
3 In [93]: ls
4 Out[93]: [‘mary‘, ‘jerry‘, ‘kate‘]
1 // 在列表尾部添加元素 ‘me‘
2 In [16]: ls.append(‘me‘)
3 In [17]: ls
4 Out[17]: [‘mary‘, ‘tom‘, ‘kate‘, ‘me‘]
5
6 // 在列表索引为2处添加元素 ‘jack‘
7 In [18]: ls.insert(2,‘jack‘)
8 In [19]: ls
9 Out[19]: [‘mary‘, ‘tom‘, ‘jack‘, ‘kate‘, ‘me‘]

注意:不存在的元素不可以用索引来引用或添加

 1 // 注意:不存在的元素不可以用索引来引用或者添加
 2 In [14]: ls[3]
 3 ---------------------------------------------------------------------------
 4 IndexError                                Traceback (most recent call last)
 5 <ipython-input-14-bc53f97bfb95> in <module>()
 6 ----> 1 ls[3]
 7 IndexError: list index out of range
 8
 9 In [15]: ls[3]=‘me‘
10 ---------------------------------------------------------------------------
11 IndexError                                Traceback (most recent call last)
12 <ipython-input-15-41a017d867bd> in <module>()
13 ----> 1 ls[3]=‘me‘
14 IndexError: list assignment index out of range

删除列表元素

 1 // 删除列表的最后一个元素,且返回此元素
 2 In [20]: ls.pop()
 3 Out[20]: ‘me‘
 4 In [21]: ls
 5 Out[21]: [‘mary‘, ‘tom‘, ‘jack‘, ‘kate‘]
 6
 7 // 删除列表索引为2处的元素且返回此元素
 8 In [22]: ls.pop(2)
 9 Out[22]: ‘jack‘
10 In [23]: ls
11 Out[23]: [‘mary‘, ‘tom‘, ‘kate‘]
12
13 // 移除列表中匹配为‘tom‘的元素,不返回任何值
14 In [25]: ls.remove(‘tom‘)
15 In [26]: ls
16 Out[26]: [‘mary‘, ‘kate‘]
17
18 // 清空列表
19 lIn [27]: ls.clear()
20 In [28]: ls
21 Out[28]: []
1 // 删除索引为0的列表元素
2 In [88]: ls
3 Out[88]: [1, 2]
4 In [89]: del ls[0]
5 In [90]: ls
6 Out[90]: [2]

删除列表

1 In [96]: lss=[1,2,3]
2 In [97]: del lss
3 In [98]: lss
4 ---------------------------------------------------------------------------
5 NameError                                 Traceback (most recent call last)
6 <ipython-input-98-3ee6987b75c4> in <module>()
7 ----> 1 lss
8
9 NameError: name ‘lss‘ is not defined

2、列表操作符

 1 // 列表长度
 2 In [33]: len([1,2,3])
 3 Out[33]: 3
 4
 5 // 列表加
 6 In [34]: [1,2,3]+[4,5,6]
 7 Out[34]: [1, 2, 3, 4, 5, 6]
 8
 9 // 列表乘
10 In [35]: [‘Echo‘]*3
11 Out[35]: [‘Echo‘, ‘Echo‘, ‘Echo‘]
12
13 // 判断是否在列表中
14 In [36]: 1 in [1,2,3]
15 Out[36]: True
16
17 In [37]: 1 in [4,2,3]
18 Out[37]: False

3、列表的函数和方法

函数

 1 // 返回列表长
 2 In [38]: len([1,2,3])
 3 Out[38]: 3
 4
 5 // 返回列表中最大元素
 6 In [39]: max([1,2,3])
 7 Out[39]: 3
 8
 9 // 返回列表中最小元素
10 In [40]: min([1,2,3])
11 Out[40]: 1
12
13 // 将元组转化为列表
14 In [41]: list((1,2,3))
15 Out[41]: [1, 2, 3]

方法

 1 // 统计列表中‘a‘出现的次数,并返回次数
 2 In [70]: [‘a‘,‘b‘,‘f‘,1,‘a‘,3].count(‘a‘)
 3 Out[70]: 2
 4
 5 // 统计列表中‘a‘第一次出现的索引,并返回索引号
 6 In [73]: [‘a‘,‘b‘,‘f‘,1,‘a‘,3].index(‘a‘)
 7 Out[73]: 0
 8
 9 // 在列表后追加l另一列表中多个元素,不返回
10 In [42]: ls=[‘a‘,‘b‘,‘f‘,1,‘a‘,3]
11 In [45]: ls.extend([1,7,8])
12 In [46]: ls
13 Out[46]: [‘a‘, ‘b‘, ‘f‘, 1, ‘a‘, 3, 1, 7, 8]
14
15 // 列表的元素反转,不返回
16 In [49]: ls.reverse()
17 In [50]: ls
18 Out[50]: [8, 7, 1, 3, ‘a‘, 1, ‘f‘, ‘b‘, ‘a‘]
19
20 // 列表的排序(可以在sort([func])里指定排序用的方法),不返回
21 In [53]: ls=[1,4,2,7,3]
22 In [54]: ls.sort()
23 In [55]: ls
24 Out[55]: [1, 2, 3, 4, 7]

注意:以上不返回的函数和方法就是对列表本身做修改,不会生成新的列表,这里一定要注意!

在python3.6中,赋值和copy方法是一样的:

 1 In [80]: ls=[1,2,3]
 2 // 赋值
 3 In [81]: ls_=ls
 4 // copy方法
 5 In [82]: ls_c=ls.copy()
 6
 7 In [83]: ls_
 8 Out[83]: [1, 2, 3]
 9 In [84]: ls_c
10 Out[84]: [1, 2, 3]
11
12 // 改变ls本身的值
13 In [85]: ls=[1,2]
14
15 // 两者皆不改变
16 In [86]: ls_
17 Out[86]: [1, 2, 3]
18 In [87]: ls_c
19 Out[87]: [1, 2, 3]

我本地的python2.7结果和以上是一样的。

注意:在python2中有cmp(list1,list2)函数,可以比较两个列表是否相等,但是在python3中没有这个函数

 1 // python2.7中
 2 >>> cmp([1,2,3],[4,5,6])
 3 -1
 4 >>> cmp([1,2,3],[1,2,3])
 5 0
 6
 7 // python3.6中
 8 In [100]: cmp([1,2,3],[4,1,2])
 9 ---------------------------------------------------------------------------
10 NameError                                 Traceback (most recent call last)
11 <ipython-input-100-5bb17d70d0be> in <module>()
12 ----> 1 cmp([1,2,3],[4,1,2])
13
14 NameError: name ‘cmp‘ is not defined

4、元组

元组的操作和列表基本一致,需要注意的几个地方是:

元组的创建是 ” () “,列表的创建是 " [] ", 列表只有一个元素时创建没有问题,但是如果元素只有一个元素,需要在元素后加”,“,否则会被认为只是一个元素本身,元组的创建可以不加” () “;

 1 // 加括号创建
 2 In [101]: tp=(1,2,3)
 3 In [102]: tp
 4 Out[102]: (1, 2, 3)
 5
 6 // 不加括号创建
 7 In [103]: tp=1,2,3
 8 In [104]: tp
 9 Out[104]: (1, 2, 3)
10
11 // 只有一个元素且不加逗号,不会被识别为元组
12 In [105]: tp=(1)
13 In [106]: type(tp)
14 Out[106]: int
15
16 // 只有一个元素但是加逗号,会被识别成元组
17 In [107]: tp=(1,)
18 In [108]: type(tp)
19 Out[108]: tuple

除上述不同之外,元组和列表的访问、截取、操作符和函数都是一样的,元组没有更新、添加和删除元素的操作,但是可以删除元组本身,和list的删除一样;

1 In [109]: del tp
2 In [110]: tp
3 ---------------------------------------------------------------------------
4 NameError                                 Traceback (most recent call last)
5 <ipython-input-110-6fc78332fdd4> in <module>()
6 ----> 1 tp

原文地址:https://www.cnblogs.com/echo-coding/p/8734878.html

时间: 2024-08-30 15:32:06

python 之 列表list && 元组tuple的相关文章

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

#python中标准数据类型 数字Nubmer 字符串String 列表List 元组Tuple 集合Set 字典Dictionary #单个变量赋值countn00 = '10'; #整数countn01 = '100.0' #浮点countn02 = "双权"; #字符串countn03 = '10'; #数字#print("整数 = "+countn00,"浮点 = "+countn01,"字符串 = "+countn0

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

python数据结构-列表和元组

1.列表和元祖 1)列表和元组,都是一个可以放置任意数据类型的有序集合 在绝大多数编程语言中,集合的数据类型必须一致.不过,对于 Python 的列表和元组来说,并无此要求 2)两者区别: 列表是动态的,长度大小不固定,可以随意地增加.删减或者改变元素(mutable) 而元组是静态的,长度大小固定,无法增加删减或者改变(immutable) 可是,如果你想对已有的元组做任何"改变",该怎么办呢?那就只能重新开辟一块内存,创建新的元组了. 3)Python 中的列表和元组都支持负数索引

python 之列表和元组

list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] 变量classmates就是一个list.用len()函数可以获得list元素的个数: >>> len(c

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

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

Python:列表,元组

一.列表 和字符串一样,列表也是序列类型,因此可以通过下标或者切片操作访问一个或者多个元素.但是,不一样的,列表是容器类型,是可以进行修改.更新的,即当我们进行修改列表元素,加入元素等操作的时候,是对原始对象自身的直接变更,而非新对象的创建. 列表可以以任何类型对象作为自己的元素(包括用户自定义类型),而且更为灵活的是,一个列表中可以同时容纳不同类型的对象(这是C/C++中的数组或vector所不能做到的). 1.创建列表 1 2 3 4 listDemo1 = [123, 'abc', 45.

python:列表、元组和字典

1.1.特点: 任意对象的有序集合 通过偏移量读取 可变长度,异构以及任意嵌套 属于可变序列的分类 对象引用数组:当把一个对象赋给一个数据结构元素或变量名时,python总会存储对象的引用,而不是对象的拷贝. 1.2.创建列表     name_list = ['zhang', 'wang', 'li']     或 name_list = list(['zhang', 'wang', 'li']) 1.3.基本操作 索引:name_list[1] 列表中,第一个元素索引值为0.     追加:

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

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

python之列表,元组,字典。

在博主学习列表,元组以及字典的时候,经常搞混这三者.因为他们都是用括号表示的.分别是[],(),{}. 列表(list): [1,'abc',1.26,[1,2,3],(1,2,3),{'age:18'}] 列表中的元素可以是整型,浮点型,字符串,也可以是元组,列表,字典. 列表中的元素是有序的,而且元素可以更改,包括增删改.列表类似于Java之中的数组. 列表的常用方法:append,extend,remove,insert,pop,sort,reverse. 1 #!/usr/bin/pyt