欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python教程——列表及其操作

程序员文章站 2022-03-21 08:13:50
Python教程——列表及其操作本章介绍有关列表的介绍,及其特性,并涵盖了遍历列表以及有关for循环、元组的使用列表简介列表是按特定顺序排列的元素,可以拥有不同的数据类型使用方括号([ ])来表示列表,且用逗号( , )来分割其中的每一个元素如何获取列表中的数据?​因为列表是有序数组,因此仅需访问其元素的位置即可访问数据foods = ['noodles','hamburger','rice']print(foods[1])#hamburgerprint(foods[-1])...

Python教程——列表及其操作

本章介绍有关列表的介绍,及其特性,并涵盖了遍历列表以及有关for循环、元组的使用

列表简介

  • 列表是按特定顺序排列的元素,可以拥有不同的数据类型
  • 使用方括号([ ])来表示列表,且用逗号( , )来分割其中的每一个元素

如何获取列表中的数据?

​ 因为列表是有序数组,因此仅需访问其元素的位置即可访问数据

foods = ['noodles','hamburger','rice']
print(foods[1])		#hamburger
print(foods[-1])	#rice

需要注意的是

1.列表的索引是从0开始的,而不是1;

2.为了在不知道列表长度的情况下访问列表的最后一个数据,可采用-1来进行访问,同理,-2即可访问列表中的倒数第二个元素

3.在数组的数据提取后,可以看作是一个变量使用,因此在输出列表中的数字时,还是需要str()进行转化

列表的增删改

方法 参数 作用
append( ) 需要添加的元素 添加新的元素到列表末尾
insert( ) 所加元素的位置、需要添加的新元素 在特定位置上添加新的元素
pop( ) 可将列表中最后一个值弹出
pop( ) 列表中所要删去的元素的位置 弹出列表中的任何位置的元素
remove( ) 所要删去的元素 删去第一个指定的元素
向列表增加新的元素
  • 在列表末尾添加元素:
foods = ['noodles','hamburger','rice']
foods.append('cake')	#foods = ['noodles','hamburger','rice','cake']
print(foods[-1])		#cake

以上展示在foods的末尾添加了一个cake的元素,然后输出最后一位即cake。可见append可以在末尾添加元素

  • 在列表中间插入元素:
foods = ['noodles','hamburger','rice']
foods.insert(0,'cake')		#foods = ['cake','noodles','hamburger','rice']
print(foods[0])			#cake
print(foods[1])			#noodles

在foods的第0个位置添加cake元素,其余元素都右移一个位置

在列表中删除元素
  • 直接弹出栈顶元素
foods = ['noodles','hamburger','rice']
food = foods.pop()
print(foods)	#['noodles','hamburger']
print(food)			#rice

将foods中的rice弹出,赋值给food,原列表的末尾的元素变为hamburger,表示对列表操作成功,而food在输出得到rice表示food弹出接收成功

列表就像一个栈,列表的末尾的元素相当于栈顶元素,而我们在使用append、pop相当于对栈堆的操作

  • 弹出列表中的任何位置的元素
foods = ['noodles','hamburger','rice']
food = foods.pop(1)
print(foods)	#['noodles','rice']
print(food)			#hamburger

与弹出栈顶元素相类似,在pop中加入位置参数,能弹出有序列表中对应位置的元素

  • 删除已知元素
foods = ['noodles','hamburger','rice','hamburger']
food = foods.remove('hamburger')
print(foods)	#['noodles','rice','hamburger']

找到foods列表中的hamburger并删去,注意,列表中若有重复的元素,只能删去第一个

  • 永久删除某元素
foods = ['noodles','hamburger','rice','hamburger']
del foods[-1]
print(foods)			#['noodles', 'hamburger', 'rice']

如果知道需要删去的元素的位置,且不必要再使用该数据,可以通过del直接进行删除

修改列表中元素的值
foods = ['noodles','hamburger','rice']
foods[0] = 'cake'
print(foods)		#['cake','hamburger','rice']

指定foods中的第一个元素,直接通过赋值的方法进行修改

组织列表

方法/函数 参数 作用
sort( ) reverse=True(反向排序,默认为false) 对列表进行永久性排序
sorted( ) reverse=True(反向排序,默认为false) 对列表进行临时排序
reverse( ) 反向列表数据
len( ) 得到列表长度
对列表进行永久性排序
foods = ['noodles','hamburger','rice']
foods.sort()
print(foods)	#['hamburger', 'noodles', 'rice']
foods.sort(reverse=True)
print(foods)	#['rice', 'noodles', 'hamburger']

以上对foods中的元素进行永久性排序,顺序一旦改变,无法复原,reverse定义为True时,可以进行反向排序

对列表进行临时排序
foods = ['noodles','hamburger','rice']
print(sorted(foods))					#['hamburger', 'noodles', 'rice']
print(foods)							#['noodles', 'hamburger', 'rice']
print(sorted(foods,reverse=True))		#['rice', 'noodles', 'hamburger']

sorted()函数与sort()方法在使用上有较大不同,而sorted( )使用后赋值给一个新的变量也可以实现永久排序,因此其可用性较高

对列表进行反向
foods = ['noodles','hamburger','rice']
foods.reverse()
print(foods)		#['rice', 'hamburger', 'noodles']

reverse()方法是对原列表进行反向输出,并不需要进行排序

生成列表长度
foods = ['noodles','hamburger','rice']
len(foods)			#3

通过len()函数可以快速获取列表的长度

操作列表

通过For循环遍历列表
  • 在一个列表中含有相同类型的数据,因此我们往往需要对其进行类似的操作,这就需要我们会使用循环遍历列表
  • 我们可以使用for循环列表进行遍历操作
foods = ['noodles','hamburger','rice']
for food in foods:
    print(food +' is delicious!\n')
		#noodles is delicious!
		#hamburger is delicious!
		#rice is delicious!
  1. For循环将每个foods列表分别赋值给food并执行for循环内部的语句中
  2. For循环不同于其他代码,Python中的For循环不需要结束语句,而在Python中,通过语句缩进来控制代码块,使得Python的代码更加轻便
  3. food虽然在for循环中,但是其所占据的内存空间却在全局,因此,即使弹出循环了,我们依旧可以调用food,且其值是我们最后一次调用的值。
  4. for的代码块最需要注意的是在for行上末尾的分号(:)以及代码块内部的缩进
创建数字列表
  • Python为了更高效的生成数字列表,提供了range()函数可以快速生成一系列数字
for value in range(1,6):
    print(value)
    #1
    #2
    #3
    #4
    #5
    
print(list(range(1,6)))		#[1,2,3,4,5]
print(list(range(2,11,2)))	#[2,4,6,8,10]
  1. 在for循环中,将每个值分别赋给value,并进行输出,我们也可以将range(1,6)直接转化为列表输出
  2. range()函数中,第一位表示数字起始的位置,第二位表示列表的数字末尾小于该数,第三位表示相邻两数之间的差,称之为步长

当我们使用range函数时,有时需要对其进行加1或减1才能达到预期的效果

数字列表简单的统计运算
函数 作用
min 返回列表中的最小值
max 返回列表中的最大值
sum 返回列表所有元素的和

对于很长的列表也同样适用

列表的操作的简写
num_s = []
for value in range(1,11):
    num_ = value**2
    num_s.append(num_)
print(num_s)			#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

num_s = [value**2 for value in range(1,11)]
print(num_s)			#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

上方的代码是输出1~10中的数字平方组成的列表,下方是其相对的简写代码,代码的简约能提高代码的阅读效率

切片

什么是切片?
  • 我们需要使用一小段的列表时,需要处理列表的部分元素,通过切片来进行提取
foods = ['noodles','hamburger','rice','cake','noodles']
print(foods[0:3])			#['noodles','hamburger','rice']
print(foods[:4])			#['noodles','hamburger','rice','cake']
print(foods[2:])			#['rice','cake','noodles']
print(foods[-3:])			#['rice','cake','noodles']

for food in foods[-2:]:
    print(food)
   	#cake
    #noodles

foodss = foods
foodss[0] = 'rice' 
print(foods)				#['cake','hamburger','rice','cake','noodles']

foodss = foods[:]
foodss[0] = 'rice' 
print(foods)				#['noodles','hamburger','rice','cake','noodles']
print(foodss)				#['cake','hamburger','rice','cake','noodles']
  1. 第一段代码表示了切片的用法,同数字列表类似,都是从第一位数开始,且需要小于第二位数,而在位置未加数时,需要从开始,或者最后开始
  2. 第二段代码展示了切片之后也是列表
  3. 第三段代码表示,列表在切片后赋给新变量,但是其与原来的列表还是相关联的,因此列表的切片是类似于指针的
  4. 第四段代码表示切片后的代码复制给一个新的列表中

元组

  • 在数据类型中有const表示的是不可变的数,而相对于列表,也有不能变动的列表,称为元组
  • 元组中的任一数据都不能改动,而列表的数据在运行期间可能变化
  • 遍历元组的方式与遍历列表的方式相同
列表 元组
数据可变 数据不可变
方括号包裹数据 圆括号包裹数据
修改元组变量
  • 不能修改元组内部的数据,直接将元组重新赋值即可

本文地址:https://blog.csdn.net/weixin_46139709/article/details/107172073