python序列之列表详解(python中序列的通用操作)

liftword19小时前技术文章5

Python中除了字符串外,还有另外两种序列:列表和元组,他们都可以包含零个或多个元素,而且并不要求所含元素的类型相同,每个元素都可以是任何Python类型对象。

为什么Python要同时设计列表和元组这两种序列结构呢?这是因为元组和字符串类似是不可变的,当你给元组赋值时,这些值便会被固定在元组中而无法修改。而列表是灵活可变的,可以随意插入或者删除其中的元素,结构更灵活,用处也更强大。

一:列表创建

使用[ ]或者list[ ]创建列表

number=[1,2,3]
s=['lily','jude']
mix=[1,'hello',[1,2,3],3.14]      #混合列表
empty=[]                                #也可以创建一个空的列表
> list('jude')                            # 使用list函数创建
['j','u','d','e'] 

二:列表操作

2.1,通过索引获取元素,索引值从0开始

name=['lucy','lily',['china','usa'],'007','anna','mei']
name[0] >>> 'lucy'
name[1] >>> 'lily'
name[-1] >>> 'mei'  #获取最后一个元素,依次类推
name[2][1] >>>'usa'   #针对嵌套的列表结构,可多次通过索引获取

2.2,列表分片获取

当需要从列表一次性取出多个元素时,需要通过列表分片的方式来实现,

其基本形式是:列表名[左索引值:右索引值],左右索引值都可以省略,

左索引值省略时表明,列表元素从0开始,右索引值省略表示包含左索引值右边的所有元素。

注意:分片其实是创建原列表的一个拷贝

member = ['php','python','java','sql']        
member[1:3] >>>['python','java']            #member本身元素并没有发生变化,相当于生成了包含元素1和2的新列表
member[:3] >>>['php','python','java']     #表示从第0个索引值开始
member[1:] >>>['python','java','sql']       #表示从左索引值开始到列表右边所有元素
member[:] >>>['php','python','java','sql']      #相当于复制了一份原列表

分片操作可以接收第三个参数,也就是步长,格式如下:[start:end:step],

step在不指定时默认为1

numb=[1,2,3,4,5,6]
numb[0:6:2] >>>[1,3,5]
numb[::2] >>>[1,3,5]
numb[::-1] >>>[6,5,4,3,2,1]       #相当于复制一个反转的列表

2.3,列表复制

三种方法都可以将一个列表的值复制到一个新的列表

  • copy()函数 用于拷贝一个列表
  • list()函数转换
  • 列表分片[ : ]
list1 = [123,456]
list2 = list1.copy()  
#则list2的值也变为[123,456] 它的功能和列表分片功能 list2 = list1[:]作用是一样的;
#他们两个与赋值运算符=是有区别的,前者是在内存中重新申请一个空间并存放列表的值,
=则是将列表的地址直接赋值给了另一个列表,
举例说明两者带来的区别:
list1 = [1,3,5]
list2 =list1
list3 = list1.copy()
list1.append('python')
list2 >> [1,3,5,'python']
list3 >> [1,3,5]

2.4,列表排序


经常需要将列表按元素值进行排序,python提供了两个函数

  • list.sort(reverse=False) :直接改变原列表结构,默认升序排列,
  • sorted(list) :返回排序后的结果,相当于复制了一个列表,原列表不变

如果列表中元素都是数字,会默认安装从大小大的升序排列,如果元素都是字符串,则会按照字母表顺序排列。

进阶用法:

sort(func,key,reverse) func和key分别设置排序的算法和关键字,

reverse=False表示正序排列,为True颠倒顺序,默认正序

a=[1,5,3,99,6]
a.sort()  
a >> [1,3,5,6,99]
sorted(a)           #内置函数sorted,返回排序后的结果,相当于复制了一个列表,原列表不变
>> [1,3,5,6,99]

2.5,添加元素

  • append(str):添加元素至列表尾部
  • extend([]):将一个列表合并到另一个列表中,等价于 +=
  • insert(index,str):在指定位置插入元素
>>> number=['lucy','lily']
#append函数将元素添加到列表末尾
>>> number.append('007') 
    ['lucy','lily','007'] 
#extend函数将列表添加到列表的末尾
>>> number.extend(['anna','mei']) #等价于 number+=['anna','mei']  
    ['lucy','lily','007','anna','mei']
#insert()方法
>>> number.insert(0,'ken')
    ['ken','lucy','lily','007','anna','mei']
**连接操作符,两个列表直接相加可以得到合并之后的新列表
a,b=[1,2],[3,4]
>>> a+b
    [1,2,3,4]
>>> a*2 
    [1,2,1,2]

2.6 删除列表元素

  • remove(str):删除指定值的元素
  • del(index) : 删除指定位置的元素
  • pop(num=-1) :删除指定位置的元素(默认删除最后一个元素),该函数返回删除的元素
  • clear() :用于删除列表中的所有元素,变成一个空的列表
name=['lucy','lily','007','anna','mei']
>>> name.remove('lucy')
    ['lily','007','anna','mei']

>>> del name[1]
    ['lily','anna','mei']

>>> name.pop() 
'mei'
>>> name
['lily','anna']
>>> name.pop(1)
    'anna'
>>> name
['lily']

list1 = [1,1,2,3,4]
>>> list1.clear() 
>>> list1
    []

2.7,使用in判断值是否存在

判断列表中是否存在该元素,存在返回True

name=['lucy','lily','007','anna','mei']
>>> '007' in name
True

2.8,使用join()转换为字符串

注意:join()其实是字符串方法,不是列表的方法,不能通过suit.join()进行调用。

join() 是字符串分割split()的逆过程

suit=['apply','orange','peer']
>>> '# '.join(suit)
'apply# orange# peer'

2.9,元素计数

使用count()可以计算某一个特定元素在列表中出现的次数

#count计算参数在列表中出现的次数
list1.count(1) >>> 2 

2.10,获取列表长度及列表反转

  • len():返回列表的长度
  • reverse():没有返回值,对原列表的进行反转而不是复制一个
list1=[1,2,3,1,4]
#计算元素个数
>>> len(list1) 
5 
#列表反转
>>> list1.reverse() 

>>> list1
[4, 1, 3, 2, 1]

相关文章

python之列表操作(python的列表怎么用)

常用函数函数名功能说明append将一个元素添加到列表中names = ['tom']用法:names.append('tommy')注意事项:被添加的元素只会被添加到...

零起点Python机器学习快速入门-4-4-列表操作

Python 列表的基本操作展开。首先,定义了两个列表 zlst 和 vlst 并将它们的内容打印出来。接着,使用切片操作从这两个列表中提取部分元素,分别得到 s2、s3 和 s4 三个新的列表,并打...

Python 列表实用操作大全(python列表入门)

一、引言在 Python 编程世界里,列表(List)堪称极为关键且常用的数据结构。它宛如一个井然有序的收纳盒,能容纳各式各样的数据类型,像数字、字符串,甚至嵌套其他列表都不在话下。对于刚接触 Pyt...

Python 列表(List)详解(python中列表list的用法)

列表是 Python 中最基本、最常用的数据结构之一,它是一个有序的、可变的元素集合。一、列表的基本操作1. 创建列表# 空列表 empty_list = [] empty_list = list()...

Python 列表高级操作指南(python,列表)

在 Python 编程领域,列表作为基础且重要的数据结构,其常规操作如创建、访问、修改等,大家或许已较为熟悉。然而,当我们深入数据处理、复杂逻辑编写时,掌握一些高级操作技巧,能极大提升编程效率与代码质...