zoukankan      html  css  js  c++  java
  • 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循环比较方便
    for ue in user:
        print(ue)
    输出:
    张三
    李四
    王五
    ['张三的年收入', ['工资收入', '津贴', '来源天上']]

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

    user = ["张三","李四","王五",["张三的年收入",["工资收入","津贴","来源天上"]]]
    for ue in user:
            #isinstance()是内置函数,此处用来确定数据类型是不是列表
       
    if isinstance(ue,list):
            for u in ue:
                print(u)
        else:
            print(ue)

    输出:

    张三

    李四

    王五

    张三的年收入

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

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

    函数的格式:

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

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

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

    #创建一个用来处理列表的函数
    def print_li(the_list):
        for ue in the_list:
            #判断数据类型是不是列表
           
    if isinstance(ue, list):
                print_li(ue)
            else:
                print(ue)
    user = ["张三","李四","王五",["张三的年收入",["工资收入","津贴","来源天上"]]]
    #调用函数
    print_li(user)

    输出:

    张三

    李四

    王五

    张三的年收入

    工资收入

    津贴

    来源天上

  • 相关阅读:
    Java之hashCode的作用和equals方法的重构规则
    Java-IO流之File操作和Properties操作
    Java-IO流之转换流的使用和编码与解码原理
    Java-IO 字节流的使用和效率比较
    Java-IO流之BufferedReader 和BufferedWriter的使用和原理
    二分查找
    leetcode530 二叉搜索树的最小绝对差
    leetcode94 二叉树的中序遍历
    leetcode17电话号码字母组合
    leetcode26 删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/simple-free/p/8280488.html
Copyright © 2011-2022 走看看