• Python基础语法day_03——列表


    day_03

    • 列表是什么

    在Python中,用[]来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例:

    >>> bicycles = ['treak','cannondale','redline','specialized']
    >>> print(bicycles)
    

    Python会将列表打印出来,包括方括号

    ['treak', 'cannondale', 'redline', 'specialized']
    
    • 访问列表元素

    利用[]来访问列表中的元素

    >>> print(bicycles[0])
    treak
    

    上条语句利用了bicycles[0]来访问列表中的第一个元素

    我可以使用昨天所讲的字符串方法,来使输出更加简洁——使用title()方法:

    >>> print(bicycles[0].title())
    Treak
    
    • 索引是从0开始而不是从1开始

    你可以看到

    >>> bicycles = ['treak','cannondale','redline','specialized']
    >>> print(bicycles[1])
    cannondale
    >>> print(bicycles[3])
    specialized
    

    下标为1的元素是cannondale、下标为3的元素是specialized

    通过访问[-1]可以得到最后一个列表元素

    >>> bicycles = ['treak','cannondale','redline','specialized']
    >>> print(bicycles[-1])
    specialized
    

    同理访问[-2]得到倒数第二个元素,[-3]倒数第三个元素

    • 使用列表中的各个值

    下面来尝试提取一款自行车,并使用这个值来创建一条信息:

    >>> message = "My first bicycles was a "+bicycles[1].title() + "."
    >>> print(message)
    My first bicycles was a Cannondale.
    
    • 修改列表元素

    例如,假设有一个动物列表,其中第一个元素是'tiger' ,如何修改它的值呢?

    >>> animal = ['tiger','bird','fox']
    >>> print(animal)
    ['tiger', 'bird', 'fox']
    
    >>> animal[0] = 'monkey'
    >>> print(animal)
    ['monkey', 'bird', 'fox']
    
    • 在列表中添加元素

    使用方法append()添加元素

    >>> animal.append('fish')
    >>> print(animal)
    ['monkey', 'bird', 'fox', 'fish']
    

    这样就在列表中添加了一个函数

    你还可以建立一个空列表,将元素一个一个地添加进去

    >>> fruits = []
    
    >>> fruits.append('apple')
    >>> fruits.append('banana')
    >>> fruits.append('cherry')
    >>> print(fruits)
    

    得到的结果是

    ['apple', 'banana', 'cherry']
    

    但是使用这种方法添加的函数永远是在最后一个

    为此你需要一个可以插入元素的方法

    使用insert()方法可以在列表的任何位置添加新的元素。为此,你需要指定新元素的索引和值:

    >>> fruits.insert(0,'lemon')
    >>> print(fruits)
    

    使用这个方法,'lemon' 被插入到列表开头,这种操作将列表中所有的元素都右移一个位置

    ['lemon', 'apple', 'banana', 'cherry']
    
    • 在列表中删除元素

    使用del语句删除元素

    使用del语句的前提是,知道需要删除的元素的位置

    >>> fruits = ['apple','banana','orange']
    >>> print(fruits)
    ['apple', 'banana', 'orange']
    >>> del fruits[0]
    >>> print(fruits)
    ['banana', 'orange']
    

    使用del语句删除了,列表中的第一个元素

    ['apple', 'banana', 'orange']
    ['banana', 'orange']
    

    使用del可以删除任何位置的列表元素,条件是知道索引

    使用方法pop()删除元素

    方法pop()可删除列表末尾的元素,并让你能够接着使用他

    >>> fruits = ['apple','banana','orange']
    >>> print(fruits)
    ['apple', 'banana', 'orange']
    
    >>> popend_fruits = fruits.pop()
    >>> print(fruits)
    ['apple', 'banana']
    >>> print(popend_fruits)
    orange
    

    如果水果是按时间购买的,我想知道最后购买的水果是哪一种?

    >>> fruits = ['apple','banana','orange']
    >>> print(fruits)
    ['apple', 'banana', 'orange']
    
    >>> last_buy = fruits.pop()
    >>> print("我最后买的水果是" + last_buy.title())
    我最后买的水果是Orange
    

    弹出列表中任何位置处的元素

    实际上,可以使用pop()来弹出列表中的任何元素,只需在括号中指定要删除元素的索引即可

    >>> fruits = ['apple','banana','orange']
    >>> print(fruits)
    ['apple', 'banana', 'orange']
    
    >>> second_fruits = fruits.pop(1)
    >>> print(second_fruits)
    apple
    

    有时候,你不知带元素在列表中的位置。如果你只知道要删除的元素的值,可以使用方法remove()

    假设,我们要从列表中删除值 ‘apple’

    >>> fruits = ['apple','banana','orange']
    >>> print(fruits)
    ['apple', 'banana', 'orange']
    
    >>> fruits.remove('apple')
    >>> print(fruits)
    ['orange', 'banana']
    

    使用remove()让Python知道'apple'出现在什么位置,并将元素删除

    动手试一试

    嘉宾名单:如果你可以邀请任何人一起共进晚餐,你会邀请哪些人?请创建一个列表,其中包含至少3个你想邀请的人;然后。使用这个列表打印信息,邀请这些人来与你共进晚餐。

    #嘉宾名单
    guest = ['Harry','Ben','Babo','Jack']
    for i in range(0,4):
         print("我想邀请"+guest[i].title()+"来与我共进晚餐。")
            
    我想邀请Harry来与我共进晚餐。
    我想邀请Ben来与我共进晚餐。
    我想邀请Babo来与我共进晚餐。
    我想邀请Jack来与我共进晚餐。
    
    guest = ['Harry','Ben','Babo','Jack']
    print("我想邀请"+guest[0].title()+"," +guest[1].title() +","+guest[2].title() +","+guest[3].title()+"来与我共进晚餐。")
    
    我想邀请Harry,Ben,Babo,Jack来与我共进晚餐。
    

    修改嘉宾名单:你刚刚得知有位嘉宾无法赴约,因此需要邀请另外一名嘉宾

    #嘉宾名单
    guest = ['Harry','Ben','Babo','Jack']
    guest.remove('Babo')
    guest.insert(2,'Mical')
    print("我想邀请"+guest[0].title()+"," +guest[1].title() +","+guest[2].title() +","+guest[3].title()+"来与我共进晚餐。")
    
    我想邀请Harry,Ben,Mical,Jack来与我共进晚餐。
    

    添加嘉宾:你找到了一个更大的餐桌,可以容纳更多的嘉宾。请再邀请多三个嘉宾

    • 使用insert()在邀请名单的开头和中间添加一名嘉宾
    • 使用append()将最后一名新嘉宾添加到名单末尾
    • 打印一条信息,向名单中的每位嘉宾发出邀请
    guest = ['Harry','Ben','Babo','Jack']
    guest.remove('Babo')
    guest.insert(2,'Mical')
    guest.insert(0,'Batman')
    guest.insert(2,'Ironman')
    guest.append('Superman')
    for i in range(0,8):
        print("我想邀请"+guest[i].title()+"来与我共进晚餐。")
        
        
    我想邀请Batman来与我共进晚餐。
    我想邀请Harry来与我共进晚餐。
    我想邀请Ironman来与我共进晚餐。
    我想邀请Ben来与我共进晚餐。
    我想邀请Mical来与我共进晚餐。
    我想邀请Jack来与我共进晚餐。
    我想邀请Superman来与我共进晚餐。
    

    缩减名单:你刚得知新购买的餐桌无法按时到达,因此只能邀请两名嘉宾

    • 在程序末尾打印你只能邀请两名嘉宾的信息
    • 使用pop()不断地删除名单中的嘉宾,直到只剩下两名嘉宾,每次从名单中弹出一名嘉宾是,都打印一条信息,让该嘉宾知道的情况,无法与你共进晚餐
    • 对于剩下的两位嘉宾,打印一份信息,告知他们仍然在邀请的嘉宾之列
    guest = ['Harry','Ben','Babo','Jack']
    guest.remove('Babo')
    guest.insert(2,'Mical')
    guest.insert(0,'Batman')
    guest.insert(2,'Ironman')
    guest.append('Superman')
    
    print("非常抱歉,因为餐桌的原因,我只能邀请三个人来参加我的晚餐"+"
    
    ")
    
    one_guest = guest.pop()
    print("非常抱歉"+ one_guest+"不能邀请你来我的晚餐")
    two_guest = guest.pop()
    print("非常抱歉"+ two_guest+"不能邀请你来我的晚餐")
    three_guest = guest.pop()
    print("非常抱歉"+ three_guest+"不能邀请你来我的晚餐")
    four_guest = guest.pop()
    print("非常抱歉"+ four_guest+"不能邀请你来我的晚餐"  + "
    
    ")
    for i in range(0,4):
        print("你好"+guest[i].title()+"你仍然在我的嘉宾之列。")
    
    
    非常抱歉,因为餐桌的原因,我只能邀请三个人来参加我的晚餐
    
    
    非常抱歉Superman不能邀请你来我的晚餐
    非常抱歉Jack不能邀请你来我的晚餐
    非常抱歉Mical不能邀请你来我的晚餐
    非常抱歉Ben不能邀请你来我的晚餐
    
    
    你好Batman你仍然在我的嘉宾之列。
    你好Harry你仍然在我的嘉宾之列。
    你好Ironman你仍然在我的嘉宾之列。
    
    • 组织列表

    在你创建的列表单中。元素的排列通常是无法预测的,因为你并非总能控制用户提供的数据。

    使用方法sort()对列表进行永久性排序

    Python中的sort()方法能较为轻松地对列表进行排序。假设你有一个汽车列表,并让其中的汽车按字母顺序排序。

    cars = ['bmw','audi','fengtian','dazhong']
    cars.sort()
    print(cars)
    
    
    ['audi', 'bmw', 'dazhong', 'fengtian']
    

    你还可以按照字母逆序排序,只需要向sort()方法传递参数reverse=True

    cars = ['bmw','audi','fengtian','dazhong']
    cars.sort(reverse=True)
    print(cars)
    
    
    ['fengtian', 'dazhong', 'bmw', 'audi']
    

    使用函数sorted()对列表进行临时排序

    如果你想保留原来的列表,你可以使用函数sorted()对列表进行临时排序

    cars = ['bmw','audi','fengtian','dazhong']
    print("使用函数sorted()进行排列的列表")
    print(sorted(cars))
    
    print("原来的列表")
    print(cars)
    
    
    使用函数sorted()进行排列的列表
    ['audi', 'bmw', 'dazhong', 'fengtian']
    原来的列表
    ['bmw', 'audi', 'fengtian', 'dazhong']
    

    倒着打印列表

    可使用方法reverse()。假设汽车是按照购买时间排列的,可以轻松地按照相反的顺序排列其中的汽车

    cars = ['bmw','audi','fengtian','dazhong']
    print("原来的列表")
    print(cars)
    
    print("按照购买时间的顺序逆序")
    cars.reverse()
    print(cars)
    
    
    原来的列表
    ['bmw', 'audi', 'fengtian', 'dazhong']
    按照购买时间的顺序逆序
    ['dazhong', 'fengtian', 'audi', 'bmw']
    

    确定列表的长度——使用len()函数

    print("该列表的长度")
    print(len(cars))
    
    该列表的长度
    4
    
  • 相关阅读:
    Vuex ~ 初识
    Vue 2.0 生命周期-钩子函数理解
    vue利用watch侦听对象具体的属性 ~ 巧用计算属性computed做中间层
    Elements in iteration expect to have 'v-bind:key' directives.' 提示错误如何解决?
    微信小程序-如何自定义导航栏(navigationStyle)?
    微信小程序~触摸相关事件(拖拽操作、手势识别、多点触控)
    [Java] Collections
    [Java] Map / HashMap
    [Data Structure] 红黑树( Red-Black Tree )
    [Data Structure] 二叉搜索树(Binary Search Tree)
  • 原文地址:https://www.cnblogs.com/liulangtianzai/p/12858051.html
Copyright © 2020-2023  润新知