python之列表

列表定义

定义一个学生信息的列表

student = ["name","sex","grade","sno"]
字符串用双引号 或者单引号引起来,数字不用

打印列表的第三个数据(年级)

>>> print(student[2])     #列表和数组一样,索引是从0开始的
grade

计算列表中的数据项,或者是某个数据的长度:len()

>>> print(len(student))
4

向列表添加或删除数据项

在列表末尾追加数据项:append()
在列表末尾追加数据项集合:extend()
在列表末尾删除数据项,或删除指定位置的数据项:pop()

>>> student.append("cno")    #在list列表末尾添加课程号cno的列表项
>>> print(student)
['name', 'sex', 'grade', 'sno', 'cno']
>>> student.pop()   #删除list末尾的列表项
'cno'
>>> print(student)
['name', 'sex', 'grade', 'sno']
>>> student.pop(2)    #删除指定索引的数据项,第三个数据项
'grade'
>>>print(student)
['name', 'sex', 'sno']
>>> student.extend(["cno","pno","age"])   #给list末尾追加一个数据项集合
>>> print(student)
['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age']

删除特定的数据项:remove()
在特定位置增加数据项:insert()
查看数据项位置:index()

>>> student.remove("sno")   #删除数据项学号sno
>>> print(student)
['name', 'sex', 'grade', 'cno', 'pno', 'age']
>>> student.index("grade")   #查看grade的索引位置
2
>>> student.insert(3,"sno")    #给索引为3的位置添加数据项学号sno,实际是第4项数据项
>>> print(student)
['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age']

在python中,一个列表可以添加混合类型的数据

>>> student.insert(4,2019001001)    #添加学号,注意索引为4的位置插入后是列表第五个数据项
>>> print(student)
['name', 'sex', 'grade', 'sno', 2019001001, 'cno', 'pno', 'age']

列表数据的处理

统计列表某个数据项的个数:count()

>>> num = [1,2,3,3,2,2,4,5,6,4,6,7]
>>> num.count(2)   #统计列表中2的个数
3

倒序排列:reverse()
正向排列:sort()

>>> student = ['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age']
>>> student.reverse()   #这里的倒序,是把列表里面的数据,从后往前排列
>>> student
['age', 'pno', 'cno', 'sno', 'grade', 'sex', 'name']
>>> student.reverse()   #再次倒序,会回到原来的列表数据
>>> student
['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age']
>>> student.sort()   #正向排列是对其进行大小排列(从小到大)
>>> student
['age', 'cno', 'grade', 'name', 'pno', 'sex', 'sno']

如果需要打印一个数组中的数据项时,使用print来一个一个打印显然不可能,这时使用for语句就可以简单很多,for循环可以处理任意大小的列表

for 目标标识符 in 列表名:
     列表处理代码

实例:

>>> student = ['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age']
>>> for i in student:
	print(i)

	
name
sex
grade
sno
cno
pno
age

配合使用函数对列表进行排列
倒序排列函数:reversed()
正向排列函数:sorted()

>>> student = ['age', 'cno', 'grade', 'name', 'pno', 'sex', 'sno']
>>> student1 = []
>>> for i in reversed(student):   #将数据项倒序排列并遍历
	student1.append(i)    

>>> print(student1)
['sno', 'sex', 'pno', 'name', 'grade', 'cno', 'age']
>>> student2 = []
>>> for i in sorted(student):   #将数据项正向排列并遍历
	student2.append(i)

>>> print(student2)
['age', 'cno', 'grade', 'name', 'pno', 'sex', 'sno']

除了使用for语句外,while语句也可打印列表数据项,不同的是while需要有状态信息的判断,相对来说使用for会好点,接下来就是while的使用示例:

>>> count = 0
>>> while count<len(student):
	print(student[count])
	count += 1

	
name
sex
grade
sno
cno
pno
age

处理列表中列表

>>> student.insert(7,[123,456,789])
>>> print(student)
['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age', [123, 456, 789]]

访问列表中的列表:

>>> print(student[7][2])    #访问第八个数据项里的第三个数据项
789

如果for循环对整个嵌套列表的列表处理,显然会把内列表当作一个数据项,如下:

>>> for i in student:
	print(i)

	
name
sex
grade
sno
cno
pno
age
[123, 456, 789]

这时我们不防结合if语句来解决这个问题

if 满足条件 :
	true组(满足条件时需要做的事情)
else:
	false组(不满足条件时需要做的事情)


检查数据类型:isinstance()   #会返回bool值

实例:

>>> for i in student:
		if isinstance(i,list):    #如果当前项是一个列表,则用for来处理这个列表
			for j in i:
				print(j)
		else:
			print(i)

		
name
sex
grade
sno
cno
pno
age
123
456
789

对于上面这种两层的嵌套列表处理的不错,可是遇到三层嵌套列表或者更多层,最里的列表就不能正确处理了,当然三层嵌套可以再加一个for和if的语句,可是过多的列表嵌套就太过复杂了,这时我们不妨创建一个函数实现递归

def 函数名 (参数):
	函数代码组

实例:

函数:
def lol (List):
	for i in List:
		if isinstance(i,list):  #如果是列表就继续循环,不是就打印数据项
			lol(i)  
		else:
			print(i)	
使用:
>>> student[7].append(["ni","wo","ta"])   #插入一个列表来测试
>>> print(student)
['name', 'sex', 'grade', 'sno', 'cno', 'pno', 'age', [123, 456, 789, ['ni', 'wo', 'ta']]]
>>> lol(student)   #调用函数
name
sex
grade
sno
cno
pno
age
123
456
789
ni
wo
ta
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值