序列是Python中最基本的数据结构。Python有6个序列的内置类型 ( 列表、元组、字符串、Unicode 字符串、buffer对象和 xrange 对象 ),但最常见的是列表和元组。序列中的每个元素都分配一个数字 -— 它的位置(或索引),第一个索引是0,第二个索引是1,依此类推。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

接下来,我将着重介绍列表的定义,特性,遍历以及其基本操作(增、删、改、查以及排序)。

一、列表的定义与创建

  • 列表的格式:列表名=[元素1 , 元素2 , 元素3 , ... ...]
  • 空列表的定义:my_list = [](常用)    或    my_list = list()
  • 列表中的元素不需要具有相同的类型。
#定义列表list1,且列表中的元素不具有相同的类型
>>> list1=['zhangsan','male',20,50,'13729278528']
>>> type(list1)
<class 'list'>

#创建空列表my_list
#方法一(常用)
>>> my_list=[]
>>> type(my_list)
<class 'list'>
#方法二
>>> my_list=list()
>>> type(my_list)
<class 'list'>

二、列表的特性

  • 与元组不同,列表中的元素可以修改;
  • 列表里面也是可以嵌套列表的;
  • 列表的元素可以是整型,浮点数,复数,布尔类型,也可以是字符串;
  • 列表是一种有序的集合,每个元素都有一个位置(即索引,索引从0开始),故列表可以进行截取、组合等。

三、列表的基本操作

1、 查找列表中的值

1.1> 使用下标索引来访问列表中的值,也可以使用方括号的形式进行截取,如下所示:

>>> list1=['zhangsan','male',20,50,'13729278528']

>>> list1[1]     #获取列表list1中的第二个元素
'male'
>>> list1[-1]    #获取列表list1中的倒数第一个元素
'13729278528'
>>> list1[1:]    #获取列表list1中第二个到最后一个元素
['male', 20, 50, '13729278528']
>>> list1[:3]    #获取列表list1中第一个到第三个元素(含左不含右)
['zhangsan', 'male', 20]
>>> list1[1:3]   #获取列表list1中第二个到第三个元素(含左不含右)
['male', 20]

1.2> list.index(obj):从列表中找出某个值第一个匹配项的索引位置

list1=['zhangsan','male',20,50,'13729278528',20]

a=list1.index(20)   #从列表中找出元素20的第一个匹配项的索引位置
print(a)

运行结果:
2

2、增加列表中的元素(append,insert,extend)

2.1> list.append(obj):在列表的末尾添加新的对象

list1=['zhangsan','male',20,50,'13729278528']

list1.append(160)
print(list1)
list1.append(['西安','北京'])   #实现列表的嵌套
print(list1)

运行结果:
['zhangsan', 'male', 20, 50, '13729278528', 160]
['zhangsan', 'male', 20, 50, '13729278528', 160, ['西安', '北京']]

2.2> list.insert(index , obj):在列表的指定位置增加元素;如果指定的位置不存在,默认会增加在列表末尾。

list1=['zhangsan','male',20,50,'13729278528']

list1.insert(4,160)            #向列表的第五个位置插入160
print(list1)
list1.insert(1,['西安','北京']) #向列表的第二个位置插入['西安','北京']
print(list1)
list1.insert(8,'大学')          #'8'超出索引范围,添加到列表的末尾
print(list1)

运行结果:
['zhangsan', 'male', 20, 50, 160, '13729278528']
['zhangsan', ['西安', '北京'], 'male', 20, 50, 160, '13729278528']
['zhangsan', ['西安', '北京'], 'male', 20, 50, 160, '13729278528', '大学']

2.3> list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list1=['zhangsan','male',20,50,'13729278528']
list2=['momo','famale',18,45,'13729669270']

list1.extend(list2)
print(list1)

运行结果:
['zhangsan', 'male', 20, 50, '13729278528', 'momo', 'famale', 18, 45, '13729669270']

3、修改列表中的元素

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改。

list1=['zhangsan','male',20,50,'13729278528']

list1[3]=55
print(list1)
list1[2:]=[21,60,'19802979883']    #切片进行修改
print(list1)

运行结果:
['zhangsan', 'male', 20, 55, '13729278528']
['zhangsan', 'male', 21, 60, '19802979883']

4、删除列表中的元素(del,pop,remove)

4.1> del list(index):根据列表的下标,对指定位置的元素进行删除

list1=['zhangsan','male',20,50,'13729278528']

del list1[3]  #删除列表中的第四个元素
print(list1)

运行结果:
['zhangsan', 'male', 20, '13729278528']

4.2> list.pop(index):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list1=['zhangsan','male',20,50,'13729278528']

list1.pop()    #默认移除列表中的最后一个元素
print(list1)
list1.pop(2)   #移除列表中的第三个元素
print(list1)

运行结果:
['zhangsan', 'male', 20, 50]
['zhangsan', 'male', 50]

4.3> list.remove(obj):移除列表中某个值的第一个匹配项

list1=['zhangsan','male',20,50,'13729278528',20]

list1.remove(20)   #移除列表中元素20的第一个匹配项
print(list1)

运行结果:
['zhangsan', 'male', 50, '13729278528', 20]

5、列表的排序

5.1> list.sort() / list.reverse():对列表进行升序排列

5.2> list.sort(reverse=True):对列表进行降序排列

>>> list1=[1,3,8,5,10,-1]

>>> list1.sort()            #升序排列
>>> print(list1)
[-1, 1, 3, 5, 8, 10]
>>> list1.sort(reverse=1)   #sort(reverse=True),降序排列
>>> print(list1)
[10, 8, 5, 3, 1, -1]
>>> list1.reverse()         #升序排列
>>> print(list1)
[-1, 1, 3, 5, 8, 10]

四、列表的常用操作符

  • len()可以求取列表的长度 
  • + 号用于组合列表,* 号用于重复列表
  • in,not in 判断元素是否在列表中
  • for x in [1, 2, 3]: print(x) 列表的遍历
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中

for x in [1, 2, 3]:

     print (x)

1

2

3

迭代

五、Python列表函数&方法

六、列表的遍历

#创建一个列表,里面的元素分别为1,2,3,...10
list1 = [i for i in range(1,11)]
print(list1)
 
#创建一个列表,里面的元素分别是1-10中的偶数
list2 = [i for i in range(1,11) if i % 2 == 0]
print(list2)
 
#列表中有多个元素,每个元素的类型为元组
list3 = [(i,j) for i in range(1,4) for j in range(6,9)]
print(list3)
 
#实现分组一个列表里的元素,比如将列表a[1,2,3,...,14] 变成 列表b[[1,2,3],[4,5,6]....]
a = [x for x in range(1,15)]
b = [a[x:x+3] for x in range(0,len(a),3)]
print(b)
 
运行结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10]
[(1, 6), (1, 7), (1, 8), (2, 6), (2, 7), (2, 8), (3, 6), (3, 7), (3, 8)]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14]]

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐