Python中列表的基本操作汇总

作者:遇安.112 时间:2021-08-20 23:21:27 

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]

来源:https://blog.csdn.net/qq_62731133/article/details/127260345

标签:Python,列表,操作
0
投稿

猜你喜欢

  • AES算法 asp源码

    2009-08-28 13:05:00
  • Python爬虫实现百度图片自动下载

    2021-07-12 22:42:56
  • 网站中美好的细节

    2011-07-13 18:43:07
  • VBScript中的eval()函数

    2008-04-09 13:41:00
  • Keras官方中文文档:性能评估Metrices详解

    2023-07-15 00:27:40
  • 如何设计具可用性的网页表单?

    2010-03-20 21:57:00
  • asp中日期时间函数介绍

    2013-06-01 20:01:03
  • oracle下加密存储过程的方法

    2009-02-28 10:50:00
  • php5.4传引用时报错问题分析

    2023-11-14 15:03:17
  • CSS编写过程中常见的10个错误

    2008-05-29 12:49:00
  • CSS的渲染效率:书写高效的CSS

    2008-11-13 16:55:00
  • JavaScript 全半角转换

    2010-02-04 17:14:00
  • mysql使用LOAD语句批量录入数据方法

    2010-03-09 16:31:00
  • js表单检测数字

    2007-10-12 13:52:00
  • python脚本定时发送邮件

    2023-08-07 16:36:02
  • PHP rsa加密解密算法原理解析

    2023-08-18 17:23:38
  • 介绍Python的Django框架中的静态资源管理器django-pipeline

    2023-11-12 00:10:35
  • 《CSS权威指南》文摘(1)--块级元素、行内元素

    2008-04-05 13:42:00
  • Oracle中大批量删除数据的方法

    2010-07-21 13:05:00
  • 实例讲解Python中的私有属性

    2023-11-10 16:41:46
  • asp之家 网络编程 m.aspxhome.com