用来处理python列表的方法解决问题_Python笔记(二):列表+列表数据处理+函数...

#才疏学浅,难免有不恰当之处,请不吝指正,谢谢。

#适合初学者。

列表的数据自下而上堆放(形成一个堆栈),类似于其他编程语言的数组。例如:

user = ["张三","李四","王五"]

王五

李四

张三

使用[]中括号偏移量访问列表数据:

print(user[0]) 输出: 张三

print(user[1]) 输出:李四

print(user[2]) 输出:王五

(一)列表常用的一些方法:

append() :在列表末尾增加一个数据项。

user = ["张三","李四","王五"]

user.append("李留")

此时,user = ['张三', '李四', '王五', '李留']

extend():在列表末尾增加一个数据项集合

user = ["张三","李四","王五"]

user.extend(["小明","小丽"])

此时,user = ['张三', '李四', '王五', '小明', '小丽']

pop():删除列表末尾的数据。

user = ["张三","李四","王五"]

user.pop()

此时,user = ['张三', '李四']

remove():移除一个特定的数据。

user = ["张三","李四","王五"]

user.remove("张三")

此时:user = ["李四","王五"]

insert():在指定位置前面增加一个数据项。

user = ["张三","李四","王五"]

user.insert(0,"张霖")

此时:user = ['张霖', '张三', '李四', '王五']

(二)列表可以存放混合类型的数据,例如存放用户姓名和出生年份

user = ["张三",189,"李四",188,"王五",187]

(三)列表可以嵌套列表,支持多层嵌套(最多好像是支持100层)

例如:

user = ["张三",189,"李四",188,"王五",187,["张三的年收入",["工资收入","津贴","来源天上"]]]

["张三的年收入",["工资收入","津贴","来源天上"]] 整个作为列表user的第6项数据。

访问列表的数据:

print(user[0]) 输出:张三

print(user[6]) 输出:["张三的年收入",["工资收入","津贴","来源天上"]]

print(user[6][0]) 输出:张三的年收入

print(user[6][1][1]) 输出:工资收入

(四)使用for in迭代处理列表。

user = ["张三","李四","王五",["张三的年收入",["工资收入","津贴","来源天上"]]]

#python的for循环就是用来处理列表和其他迭代结构

#也可以通过while实现,不过for循环比较方便

forue inuser:

print(ue)

输出:

张三

李四

王五

['张三的年收入', ['工资收入', '津贴', '来源天上']]

(五)第4步中可以发现程序只打印了最外层的列表数据,['张三的年收入', ['工资收入', '津贴', '来源天上']]是作为一个列表输出的,该怎么把内层列表的数据也打印出来呢?

user = ["张三","李四","王五",["张三的年收入",["工资收入","津贴","来源天上"]]]

forue inuser:

#isinstance()是内置函数,此处用来确定数据类型是不是列表ifisinstance(ue,list):

foru inue:

print(u)

else:

print(ue)

输出:

张三

李四

王五

张三的年收入

['工资收入', '津贴', '来源天上']

(六)第五步中可以发现,第三层的列表还是以列表的形式打印,该怎么处理?再增加一个if循环?如果还有更多层呢?为了代码更简洁,这时我们可以使用函数来处理。

函数的格式:

def参数名():

函数代码组

()括号里的参数可选,可以有一个或多个,也可以不设置参数,但是括号必须有。

通过下面的函数我们就可以处理多层嵌套的列表了。

#创建一个用来处理列表的函数defprint_li(the_list):

forue inthe_list:

#判断数据类型是不是列表ifisinstance(ue, list):

print_li(ue)

else:

print(ue)

user = ["张三","李四","王五",["张三的年收入",["工资收入","津贴","来源天上"]]]

#调用函数print_li(user)

输出:

张三

李四

王五

张三的年收入

工资收入

津贴

来源天上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值