当前位置: 移动技术网 > IT编程>脚本编程>Python > Python教程——列表及其操作

Python教程——列表及其操作

2020年07月08日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网