Python中列表的基本操作汇总

 更新时间:2022年10月11日 16:48:39   作者:遇安.112  
这篇文章主要介绍了python中列表的一些基本操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

1、列表的创建与遍历

与整数和字符串不同,列表要处理一组数据。因此,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象,只会对原有列表生成一个新的引用。

#创建列表
list =[1,2,3,4,5]
list2=list
print(list==list2)# True 就算新建一个列表,然后将原有的值赋值给新的列表。新的列表和原列表还是指向的同一个地址
list[0]=0
print(list,list2) #修改list列表的同时也修改了list2,因为list和list2都是指向的同一个地址
print("====================================")
length=len(list)#获取列表长度
 
#遍历
i=0
#为了方便后续操作的观察,这里采用不换行输出
while(i<length):
    if (i < length-1):
        print(list[i], end=',')
    else:
        print(list[i],end='')
        print()
    i+=1
print("====================================")
for x in list:
    if (x <length):
        print(x, end=',')
    else:
        print(x,end='')
        print()
   # print(x)
print("====================================")

2、添加元素

列表可以使用append()、extend()或insert()方法来添加元素

2.1、append()方法

在列表末尾添加新的元素

语法格式:list.append(obj)

其中,list表示列表,obj表示添加到列表末尾的对象

#在列表末尾添加元素
list.append(6)
print(list) ##[0, 2, 3, 4, 5, 6] 

2.2、extend()方法

在列表末尾一次性添加另一个序列中的多个值(用新列表扩展原来的列表)

语法格式:list.extend(seq)

其中,list表示列表,seq表示添加到列表末尾的序列

#在列表末尾一次性添加另一个序列中的多个值
list3=[7,8]
list.extend(list3)
print(list) #[0, 2, 3, 4, 5, 6, 7, 8]

2.3、insert()方法

将指定对象插入到列表的指定位置

语法格式:list.insert(index,obj)

其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的对象 

#将元素添加到指定位置,例:在索引位置为1的地方插入1
list.insert(1,1)
print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]

3、删除元素

在列表中,删除元素的常用方法有:del命令、pop()方法和remove()方法

3.1、del命令

根据索引删除列表中的元素

#根据索引删除元素,例:删除索引位置为0的元素
del list[0]
print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
 
#使用分片的方式输出列表中的元素
del list[5:7] #包前不包后,5:7即删除索引为5、6的元素
print(list) #[1, 2, 3, 4, 5, 8]

3.2、pop()方法

根据索引删除列表中的元素,并返回该元素的值

语法格式:list.pop([index])

其中,list表示列表。index表示删除列表元素的索引值,为可选参数,缺省时为-1,删除列表中的最后一个元素。

#根据索引删除列表中的元素,并返回该元素的值
print(list.pop(5)) #8
print(list) #[1, 2, 3, 4, 5]
#如果没给索引,则默认删除列表最后一个元素。即弹栈/出栈
# print(list.pop())
# print(list)

3.3、remove()方法

remove()方法只能删除列表中某个值的第一个匹配项,如果要删除所有匹配的元素就需要搭配循环语句实现。

语法格式:list.remove(obj)

#删除某个值的第一个匹配值
list.remove(3)
print(list) #[1, 2, 4, 5]

4、分片赋值

分片赋值就是以分片的形式给列表赋值,可以一次为多个元素赋值

#替换索引从1包括1开始到最后的元素
list[1:]=[3,6,9]
print(list) #[1, 3, 6, 9]

分片赋值还可以在不替换任何原有元素的情况下插入新的元素

#在索引为2的位置插入列表[4,5]
#[2:1]如果后面的1变成2或者更大的数,则会依次覆盖/删除插入位置后面的数
list[2:1]=[4,5]
print(list) #[1, 3, 4, 5, 6, 9]

分片赋值也可以删除元素

#删除元素
num=[1,2,3,4,5,6]
print(num) #[1, 2, 3, 4, 5, 6]
num[1:5]=[] #用空列表替换列表中索引1到索引5(不含)的元素
print(num) #[1, 6]

5、列表排序

将列表中的元素排序的方法有3种,分别是reverse()方法、sort()方法和sorted()函数

5.1、reverse()方法

将列表中的元素反向存放

语法格式:list.reverse()

#将列表元素反转
list.reverse()
print(list) #[9, 6, 5, 4, 3, 1]

5.2、sort()方法

将列表中的元素进行排序(默认为升序)

语法格式:list.sort([key=None])[,reverse=False])

其中,list表示列表,key为可选参数,如果指定了该参数,会使用该参数的方法进行排序。reverse为可选参数,表示是否降序排序,缺省时为False

#将列表排序(默认为升序)
list.sort()
print(list) #[1, 3, 4, 5, 6, 9]
#改为降序排序
list.sort(reverse=True)
print(list) #[9, 6, 5, 4, 3, 1]
 
#按元素长度进行排序(默认升序)
list4=["hello","P","yt","hon"]
list4.sort(key=len)
print(list4) #['P', 'yt', 'hon', 'hello']
#降序
list4.sort(key=len,reverse=True)
print(list4) #['hello', 'hon', 'yt', 'P']

5.3、sorted()函数

与sort()方法不同,内置函数sorted()返回新列表,并不对原列表进行任何修改

语法格式:sorted(iterable[,key=None][,reverse=False])

其中,iterable表示可迭代对象,如列表。参数key和reverse的用法与sort()方法中的相同

#内置函数sorted()返回新列表,不对原列表进行修改
list5=[5,3,4,2,1]
list5_new=sorted(list5)
print(list5==list5_new) # False 列表地址不一致
print(list5) #原列表不变 [5, 3, 4, 2, 1]
print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
#降序
list6=sorted(list5,reverse=True)
print(list6==list5) #False
print(list6) #[5, 4, 3, 2, 1]

完整代码

list =[1,2,3,4,5]
list2=list
print(list==list2)# True 就算新建一个列表,然后将原有的值赋值给新的列表。新的列表和原列表还是指向的同一个地址
list[0]=0
print(list,list2) #修改list列表的同时也修改了list2,因为list和list2都是指向的同一个地址
print("====================================")
length=len(list)#获取列表长度
 
#遍历
i=0
#为了方便后续操作的观察,这里采用不换行输出
while(i<length):
    if (i < length-1):
        print(list[i], end=',')
    else:
        print(list[i],end='')
        print()
    i+=1
print("====================================")
for x in list:
    if (x <length):
        print(x, end=',')
    else:
        print(x,end='')
        print()
   # print(x)
print("====================================")
 
# 添加元素
print("添加元素:")
#在列表末尾添加元素
list.append(6)
print(list) ##[0, 2, 3, 4, 5, 6]
 
#在列表末尾一次性添加另一个序列中的多个值
list3=[7,8]
list.extend(list3)
print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
 
#将元素添加到指定位置,例:在索引位置为1的地方插入1
list.insert(1,1)
print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
print("====================================")
 
#删除元素
print("删除元素:")
#根据索引删除元素,例:删除索引位置为0的元素
del list[0]
print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
 
#使用分片的方式输出列表中的元素
del list[5:7] #包前不包后,5:7即删除索引为5、6的元素
print(list) #[1, 2, 3, 4, 5, 8]
 
#根据索引删除列表中的元素,并返回该元素的值
print(list.pop(5)) #8
print(list) #[1, 2, 3, 4, 5]
#如果没给索引,则默认删除列表最后一个元素。即弹栈/出栈
# print(list.pop())
# print(list)
 
#删除某个值的第一个匹配值
list.remove(3)
print(list) #[1, 2, 4, 5]
print("====================================")
 
#分片赋值
print("分片赋值:")
#替换索引从1包括1开始到最后的元素
list[1:]=[3,6,9]
print(list) #[1, 3, 6, 9]
 
#在索引为2的位置插入列表[4,5]
#[2:1]如果后面的1变成2或者更大的数,则会依次覆盖/删除插入位置后面的数
list[2:1]=[4,5]
print(list) #[1, 3, 4, 5, 6, 9]
 
#删除元素
num=[1,2,3,4,5,6]
print(num) #[1, 2, 3, 4, 5, 6]
num[1:5]=[] #用空列表替换列表中索引1到索引5(不含)的元素
print(num) #[1, 6]
print("====================================")
 
#列表排序
print("排序:")
#将列表元素反转
list.reverse()
print(list) #[9, 6, 5, 4, 3, 1]
 
#将列表排序(默认为升序)
list.sort()
print(list) #[1, 3, 4, 5, 6, 9]
#改为降序排序
list.sort(reverse=True)
print(list) #[9, 6, 5, 4, 3, 1]
 
#按元素长度进行排序(默认升序)
list4=["hello","P","yt","hon"]
list4.sort(key=len)
print(list4) #['P', 'yt', 'hon', 'hello']
#降序
list4.sort(key=len,reverse=True)
print(list4) #['hello', 'hon', 'yt', 'P']
print("---------------------------------------")
 
#内置函数sorted()返回新列表,不对原列表进行修改
list5=[5,3,4,2,1]
list5_new=sorted(list5)
print(list5==list5_new) # False 列表地址不一致
print(list5) #原列表不变 [5, 3, 4, 2, 1]
print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
#降序
list6=sorted(list5,reverse=True)
print(list6==list5) #False
print(list6) #[5, 4, 3, 2, 1]

到此这篇关于Python中列表的基本操作汇总的文章就介绍到这了,更多相关Python列表操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现狄克斯特拉算法

    python实现狄克斯特拉算法

    这篇文章主要介绍了python实现狄克斯特拉算法。想了解数据结构和算法朋友可以参考下
    2021-04-04
  • PyTorch小功能之TensorDataset解读

    PyTorch小功能之TensorDataset解读

    这篇文章主要介绍了PyTorch小功能之TensorDataset解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python tkinter制作单机五子棋游戏

    Python tkinter制作单机五子棋游戏

    这篇文章主要介绍了Python tkinter制作单机五子棋游戏,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • python利用datetime模块计算时间差

    python利用datetime模块计算时间差

    python中通过datetime模块可以很方便的计算两个时间的差,datetime的时间差单位可以是天、小时、秒,甚至是微秒,下面我们就来详细看下datetime的强大功能吧
    2015-08-08
  • python 如何引入协程和原理分析

    python 如何引入协程和原理分析

    这篇文章主要介绍了python 如何引入协程和原理分析,帮助大家更好得理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • Python3使用requests包抓取并保存网页源码的方法

    Python3使用requests包抓取并保存网页源码的方法

    这篇文章主要介绍了Python3使用requests包抓取并保存网页源码的方法,实例分析了Python3环境下requests模块的相关使用技巧,需要的朋友可以参考下
    2016-03-03
  • Pandas的AB BA类型数据框去重复

    Pandas的AB BA类型数据框去重复

    这篇文章主要为大家介绍了Pandas的AB BA类型数据框去重复实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Python字符串匹配算法KMP实例

    Python字符串匹配算法KMP实例

    这篇文章主要介绍了Python字符串匹配算法KMP实现方法,实例分析了Python针对字符串操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 使用Python实现批量发送个性化邮件

    使用Python实现批量发送个性化邮件

    在现代工作环境中,我们经常需要向多个收件人发送个性化的邮件,因此本文小编为大家整理了Python实现批量发送个性化邮件的示例代码,希望对大家有所帮助
    2023-11-11
  • TensorFlow实现创建分类器

    TensorFlow实现创建分类器

    这篇文章主要为大家详细介绍了TensorFlow实现创建分类器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论