zoukankan      html  css  js  c++  java
  • Python之路【第二篇】:Python基础(7)-列表

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #Author:Jam

    #0、列表
    '''
    序列是最基本的数据结构,序列中的每个元素都分配一个数字,它的位置索引第一个是0,第二个是1,以此类推
    列表是最常用的python数据类型,作为一个方括号内的逗号分隔值出现
    列表的数据项不需要具有相同的类型
    '''

    #1、创建一个列表
    list1 = ['google','Runoob',1997,2000]
    list2 = [1,2,3,4,5]
    list3 = ["a","b","c","d","e"]
    #print(list1,' ',list2,' ',list3) #3行一起打印,使用 换行
    print('''
    %s
    %s
    %s
    '''%(list1,list2,list3)) #3行一起打印,使用''' '''符号
    #输出结果:
    '''
    ['google', 'Runoob', 1997, 2000]
    [1, 2, 3, 4, 5]
    ['a', 'b', 'c', 'd', 'e']
    '''

    #2、访问列表中的值
    #和字符串一样,列表索引从0开始,可以进行截取、组合等。
    list1 = ['google','Runoob',1997,2000]
    print("list1[0]:",list1[0]) # 使用下标来访问列表中的值
    print("list1[1:4]",list1[1:4]) #列表可以使用方括号的形式截取字符
    #输出结果:
    '''
    list1[0]: google
    list1[1:4] ['Runoob', 1997, 2000]
    '''

    #3、更新列表
    #可以对列表的数据进行修改或更新,也可以使用append()方法来添加列表项:
    list1 = ['google','Runoob',1997,2000]
    print("list列表的第三个元素为:",list1[2])
    list1[2] = 2001
    print("更新后的list列表的第三个元素为:",list1[2])
    '''
    list列表的第三个元素为: 1997
    更新后的list列表的第三个元素为: 2001
    '''

    #4、删除列表元素
    #可以使用del 来删除列表的元素
    list1 = ['google','Runoob',1997,2000]
    print("list列表:",list1)
    del list1[2]
    print("删除list列表的第三个元素:",list1)
    #输出结果:
    '''
    list列表: ['google', 'Runoob', 1997, 2000]
    删除list列表的第三个元素: ['google', 'Runoob', 2000]
    '''

    #5、列表脚本操作符
    #列表对+ 和 *操作符与字符串相似。+号用于组合列表,*号用于重复列表
    '''如下所示:
    Python 表达式 结果 描述
    len([1, 2, 3]) 3 长度
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
    ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
    3 in [1, 2, 3] True 元素是否存在于列表中
    for x in [1, 2, 3]: print(x) 1 2 3 迭代
    '''
    #输出结果
    '''以下在python交互器中练习:
    >>> len([1,2,3])
    3
    >>> [1,2,3] + [4,5,6]
    [1, 2, 3, 4, 5, 6]
    >>> ['Hi!'] * 4
    ['Hi!', 'Hi!', 'Hi!', 'Hi!']
    >>> 3 in [1,2,3]
    True
    >>> for x in [1,2,3]: print(x)
    ...
    1
    2
    3
    '''

    #6、列表截取
    #列表的截取与字符串操作类型,如下所示:
    L=['Google', 'Runoob', 'Taobao']
    #操作:
    '''
    Python 表达式 结果 描述
    L[2] 'Taobao' 读取第三个元素
    L[-2] 'Runoob' 从右侧开始读取倒数第二个元素: count from the right
    L[1:] ['Runoob', 'Taobao'] 输出从第二个元素开始后的所有元素
    '''
    #练习输出:
    '''
    >>> L = ['Google','Runoob','Taobao']
    >>> L[2]
    'Taobao'
    >>> L[-2]
    'Runoob'
    >>> L[1:]
    ['Runoob', 'Taobao']
    >>>
    '''

    #7、列表拼接
    '''
    >>> squares = [1,4,9,16,25]
    >>> squares + [36,49,64,81,100]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    '''

    #8、列表嵌套
    #使用列表嵌套即在列表里面创建其它列表
    '''
    >>> a = ['a','b','c']
    >>> n = [1,2,3]
    >>> x = [a,n]
    >>> x
    [['a', 'b', 'c'], [1, 2, 3]]
    >>> x[0]
    ['a', 'b', 'c']
    >>> x[1]
    [1, 2, 3]
    >>> x[0][1]
    'b'
    >>> x[1][1]
    2
    '''

    #9、python列表函数
    '''
    序号 函数
    1 len(list)
    列表元素个数
    2 max(list)
    返回列表元素最大值
    3 min(list)
    返回列表元素最小值
    4 list(seq)
    将元组转换为列表
    '''

    #9.1、len()方法
    #描述:len()方法返回列表元素个数
    #语法:len(list)
    #参数:list是要计算元素个数的列表
    #返回值:返回列表元素个数
    #实例:
    #以下这一段测试在pycharm里面没有输出,刚开始不知道是什么原因,发现代码在Python交互器里面正常的,后来发现再往上翻的代码中使用了
    #list命名的变量,list在解释器里面是一个属于模块的东西,变量命名要尽量避开这些跟函数名、方法名重叠的名称。
    list1 = ['Google', 'Runoob', 'Taobao']print (len(list1))#输出:3list2=list(range(5)) # 创建一个 0-4 的列表print (len(list2))#输出:5print(list2)#输出:[0, 1, 2, 3, 4]#python交互器输出结果:'''>>> list1 = ['Google', 'Runoob', 'Taobao']>>> print(len(list1))3>>> list2=list(range(5))>>> print(len(list2))# 创建一个 0-4 的列表5>>> print(list2)[0, 1, 2, 3, 4]'''#9.2、max()方法#描述:max()方法返回列表元素中的最大值#语法:max(list)#参数:list是要返回最大值的列表#返回值:返回列表元素中的最大值#实例:list1,list2 = ['Google','Runoob','Taobao'],[456,700,200]print("list1 最大元素值:",max(list1))print("list2 最大元素值:",max(list2))#输出结果:#list1最大元素值: Taobao#list2 最大元素值: 700#9.3、min()方法#描述:min()方法返回列表元素中的最小值#语法:min(list)#参数:list是要返回最小值的列表#返回值:返回列表元素中的最小值#实例:list1,list2 = ['Google','Runoob','Taobao'],[456,700,200]print("list1 最小元素值:",min(list1))print("list2 最小元素值:",min(list2))#输出结果:#list1最小元素值: Google#list2 最小元素值: 200#9.4、list()方法#描述:list()方法用于将元组转换为列表#注:元组与列表非常类似,区别在于元组的元素值不能修改,元组放在括号中,列表放在方括号中。#语法:list(seq)#参数:list是要转换为列表的元组#返回值:返回列表#实例:aTuple = (123,'Google','Runoob','Taobao')list1 = list(aTuple)print('列表元素:',list1)#结果输出:#列表元素: [123, 'Google', 'Runoob', 'Taobao']'''交互器练习:>>> aTuple = (123,'Google','Runoob','Taobao')>>> list1 = list(aTuple)>>> print('列表元素:',list1)列表元素: [123, 'Google', 'Runoob', 'Taobao']>>> type(list1)<class 'list'>>>> type(aTuple)<class 'tuple'>>>>'''str = "Hello World"list2 = list(str)print('列表元素:',list2)#结果输出:#列表元素: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']'''交互器练习:>>> str = "Hello World">>> list2 = list(str)>>> print('列表元素:',list2)列表元素: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']>>> type(str)<class 'str'>>>> type(list2)<class 'list'>>>>'''#10、python列表方法#10.1、list.append(obj)#描述:在列表末尾添加新的对象#语法:list.append(obj)#参数:obj--添加到列表末尾的对象#返回值:该方法无返回值,但是会修改原来的列表#实例:list1 = ['Google','Runoob','Taobao']list1.append('Baidu')print("更新后的列表:",list1)#输出:#更新后的列表: ['Google', 'Runoob', 'Taobao', 'Baidu']#10.2、list.count(obj)#描述:count()方法用于统计某个元素在列表中出现的次数#语法:list.count(obj)#参数:obj--列表中统计的对象#返回值:返回元素在列表中出现的次数#实例:aList = [123,'Google','Runoob','Taobao',123]print("123 元素的个数:",aList.count(123))print("Runoob 元素的个数:",aList.count('Runoob'))#结果输出:#123 元素的个数: 2#Runoob 元素的个数: 1#10.3、list.extend(seq)#描述:extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)#语法:list.extend(seq)#参数:seq--元素列表#返回值:该方法没有返回值,但会在已经存在的列表中添加新的列表内容#实例:list1 = ['Google','Runoob','Taobao']list2 = list(range(5))list1.extend(list2)print("扩展后的列表:",list1)#结果输出:#扩展后的列表: ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]#10.4、list.index(obj)#描述:index() 函数用于从列表中找出某个值第一个匹配的索引位置#语法:list.index(obj)#参数:obj--查找的对象#返回值:该方法返回查找对象的索引位置,如果没有找到对象则抛出异常#实例:list1 = ['Google','Runoob','Taobao']print('Runoob 索引值为:',list1.index('Runoob'))print('Taobao 索引值为:',list1.index('Taobao'))#结果输出:#Runoob 索引值为: 1#Taobao 索引值为: 2#10.5、list.insert()#描述:insert()函数用于将指定对象插入列表的指定位置#语法:list.insert(index,obj)#参数:#index--对象obj需要插入的索引位置# obj--要插入列表的对象#返回值:该方法没有返回值,但会在列表指定位置插入对象#实例:list1 = ['Google','Runoob','Taobao']list1.insert(1,'Baidu')print("列表插入元素后为:",list1)#结果输出:#列表插入元素后为: ['Google', 'Baidu', 'Runoob', 'Taobao']#10.6、list.pop()#描述:pop()函数用于移除列表中的一个元素(默认是最后一个元素),并且返回该元素的值#语法:list.pop(obj=list[-1])#参数:# obj--可选参数,要移除列表元素的对象#返回值:该方法返回从列表中移除的元素对象#实例:list1 = ['Google','Runoob','Taobao']list1.pop()print('列表现在为:',list1)list1.pop(1)print('列表现在为:',list1)#结果输出:#列表现在为: ['Google', 'Runoob']#列表现在为: ['Google']#10.7、list.remove()#描述:remove()函数用于移除列表中某个值的第一个匹配项#语法:list.remove(obj)#参数:# obj--列表中要移除的对象#返回值:该方法没有返回值,但是会移除列表中某个值的第一个匹配项。#实例:list1 = ['Google','Runoob','Taobao','Baidu']list1.remove('Taobao')print("列表现在为:",list1)list1.remove('Baidu')print("列表现在为:",list1)#结果输出:#列表现在为: ['Google', 'Runoob', 'Baidu']#列表现在为: ['Google', 'Runoob']#10.8、list.reverse()#描述:reverse()用于反向列表中的元素#语法:list.reverse()#参数:#N/A=Not Available(不必要的)#返回值:该方法没有返回值,但是会对列表的元素进行反向排序#实例:list1 = ['Google','Runoob','Taobao','Baidu']list1.reverse()print("列表反转以后:",list1)#结果输出:#列表反转以后: ['Baidu', 'Taobao', 'Runoob', 'Google']#10.9、list.sort([])#描述:sort()函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。#语法:list.sort([func])#参数:#fune--可选参数,如果指定了该参数会使用该参数的方法进行排序#返回值:该方法没有返回值,但是会对列表的对象进行排序#实例:list1 = ['Google','Runoob','Taobao','Baidu']list1.sort()print("列表排序后:",list1)#结果输出:#列表排序后: ['Baidu', 'Google', 'Runoob', 'Taobao']#10.10、list.clear()#描述:clear()函数用于清空列表,类似于del a[:]#语法:list.clear()#参数:无#返回值:该方法没有返回值#实例:list1 = ['Google','Runoob','Taobao','Baidu']list1.clear()print("列表清空后:",list1)#结果输出:#列表清空后: []#10.11、list.copy()#描述:copy()用于复制列表,类似于a[:]#语法:list.copy()#参数:无#返回值:返回复制后的新列表#实例:list1 = ['Google','Runoob','Taobao','Baidu']list2 = list1.copy()print("list2列表:",list2)list3 = list1[:]print("list3列表:",list3)#结果输出:#list2列表: ['Google', 'Runoob', 'Taobao', 'Baidu']#list3列表: ['Google', 'Runoob', 'Taobao', 'Baidu']
  • 相关阅读:
    HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
    手动部署 Ceph Mimic 三节点
    Ceph 分布式存储架构解析与工作原理
    OpenStack 的单元测试
    OpenStack 虚拟机启动流程 UML 分析(内含 UML 源码)
    我非要捅穿这 Neutron(四)Open vSwitch in Neutron
    手动部署 OpenStack Rocky 双节点
    OpenStack Blazar 架构解析与功能实践
    基于 Open vSwitch 的 OpenFlow 实践
    OpenFlow/SDN 的缘起与发展
  • 原文地址:https://www.cnblogs.com/jiangnanmu/p/5513912.html
Copyright © 2011-2022 走看看