• 1.10 Python基础知识


      在Python中有很多的组合数据类型,其中包括列表,元组,字符串等数据类型,这些数据类型统称为序列类型,用他们可以处理复杂的数据。

      列表,是一组有序元素组合的数据结构。列表是可变的数据类型。

      列表采用方括号中逗号分隔元素的数据结构进行定义,格式如下:

      [x1,[x2, ... ,xn]]

      示例:

    list1 = [11,22,33,44,55]

      

      也可以使用list方法进行创建,如下:

    list1 = list("hello,python")
    print(list1)
    
    # 输出结果
    
    ['h', 'e', 'l', 'l', 'o', ',', 'p', 'y', 't', 'h', 'o', 'n']

      

      当创建一个列表后,可以对列表中的元素进行访问修改添加删除(即查,改,增,删)等的操作。

      示例列表: list1 = [11,22,33,44,55]

      1、访问(查)

        列表中的访问,是通过访问元素下标进行访问的,如下:

        示例:

    #查询某个元素的下标值,列表中下标位的值是从0开始的自然数,所以元素22的下标值为1
    list1.index(22)    #输出  1
    #元素是否在某个列表中
    22 in list1  #输出  True

    #访问其中的元素
    list1[2] #输出 33
    list1[-1] 
       #输出  55
    #切片访问,访问其中某一段数据,切片访问有顾头不顾尾的特性
    list1[1:3] #输出  [22,33]
    list1[:3]    #输出,等同于list1[0:3]  [11,22,33]
    list1[1:]    #输出  [22,33,44,55] 
    list1[-4:-2]    #输出  [22,33]
    list1[-2:]    #输出  [44,55]
    list1[1:4:2]    #输出,2为步长,按步长切割  [22,44]
    list1[:]    #输出  [11,22,33,44,55]
    #查询某个元素在列表中的数量
    list1.count(11)  #输出  1

      

      2、修改(改)

        列表中的修改比较简单,要想修改某个元素,只要对其重新复制就好

        示例:

    list1[22] = 55

      

      3、添加(增)

        示例1:

    list1 = [11,22,33,44,55,11]
    list1.append(678)
    print(list1)
    
    # 输出结果,append方法是在列表后面追加元素
    
    [11, 22, 33, 44, 55, 11, 678]

        示例2:

    list1 = [11,22,33,44,55,11]
    list1.insert(3,678)
    print(list1)
    
    # 输出结果,insert方法用于插入操作,需要指定要插入的下标位和元素
    
    [11, 22, 33, 678, 44, 55, 11]

      

      4、删除(删)

        示例1:

    list1 = [11,22,33,44,55,11]
    print(list1.pop(3))
    print(list1)
    # 输出结果,pop方法默认是从列表后面开始删除,如果要删除指定位置的元素,需要指定下标,而且pop删除时可以返回删除的元素

    44
    [
    11, 22, 33, 55, 11]

        示例2:

    list1 = [11,22,33,44,55,11]
    del list1[3]
    print(list1)
    
    # 输出结果
    
    [11, 22, 33, 55, 11]

        示例3:

    list1 = [11,22,33,44,55,11]
    list1.remove(22)
    print(list1)
    
    # 输出结果,remove方法需要指定要删除的元素
    
    [11, 33, 44, 55, 11]

        示例4:

    list1 = [11,22,33,44,55,11]
    list1.clear()
    print(list1)
    
    #输出结果,删除所有的元素,相当于del list1[:]
    
    []

      5、列表中的其他操作

        示例1:

    list1 = [11,22,33,44,55,11]
    list1.reverse()
    
    print(list1)
    
    #输出结果,reverse将列表中的顺序进行反向排列
    
    [11, 55, 44, 33, 22, 11]

        示例2:

    list1 = [11,22,33,44,55,11]
    list1.sort()
    
    print(list1)
    
    #输出结果,对列表进行排序操作,请与reverse予以区别
    
    [11, 11, 22, 33, 44, 55]

        示例3:

    list1 = [11,22,33,44,55,11]
    list2 = [345,234,567]
    
    list1.extend(list2)
    print(list1)
    
    #输出结果,将列表2中的元素加入到列表1中
    
    [11, 22, 33, 44, 55, 11, 345, 234, 567]

       6、浅拷贝与深拷贝

        在Python的列表中有个方法叫做copy,对列表执行复制功能,但是这个复制功能通常称为浅拷贝。

        浅拷贝示例:

    list1 = [11,22,33,44,[99,88,77],55,11]
    list2 = list1.copy()
    #
    print('list1列表:',list1)
    print('list2列表:',list2)
    
    # 第一次修改list1中的元素
    list1[1] = 222
    print('第一次修改----》')
    print('list1列表:',list1)
    print('list2列表:',list2)
    
    #第二次修改list1中的元素
    list1[4][1] = 8888
    print('第二次修改----》')
    print('list1列表:',list1)
    print('list2列表:',list2)
    
    # 输出结果
    
    list1列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
    list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
    第一次修改----

    # 这里我们看一下,我们把list1中的22修改成了222,发现只有list1中元素变化了,list2没有变化,这也符合预期,因为我们做的是列表copy操作
    list1列表: [
    11, 222, 33, 44, [99, 88, 77], 55, 11] list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
    第二次修改
    ----

    # 第二次修改我们修改了list1中为列表的元素中的元素,发现list1中变化了,list2中也发生了变化,产生这个效果的原因,是因为我们使用的copy就是浅拷贝操作
    list1列表: [
    11, 222, 33, 44, [99, 8888, 77], 55, 11] list2列表: [11, 22, 33, 44, [99, 8888, 77], 55, 11]

       上面是浅拷贝的效果,那么我们要把所有的元素都进行拷贝,那该怎么办?请看示例,

       深拷贝示例:

    # 要执行深度拷贝,需要导入模块copy,使用其中的方法deepcopy()

    import
    copy list1 = [11,22,33,44,[99,88,77],55,11] list2 = copy.deepcopy(list1) print('list1列表:',list1) print('list2列表:',list2) # 第一次修改list1中的元素 list1[1] = 222 print('第一次修改----》') print('list1列表:',list1) print('list2列表:',list2) # 第二次修改list1中的元素 list1[4][1] = 8888 print('第二次修改----》') print('list1列表:',list1) print('list2列表:',list2) # 输出结果,发现无论我们怎么修改list1,list2中的元素都不会变化,达到了完全复制的效果 list1列表: [11, 22, 33, 44, [99, 88, 77], 55, 11] list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11] 第一次修改----》 list1列表: [11, 222, 33, 44, [99, 88, 77], 55, 11] list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11] 第二次修改----》 list1列表: [11, 222, 33, 44, [99, 8888, 77], 55, 11] list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
  • 相关阅读:
    java循环遍历map
    java获取天气信息
    java使用json抛出org.apache.commons.lang.exception.NestableRuntimeException解决方案
    eclipse中如何导入jar包
    ext之关键字mixins、statics、require
    ext等待提示
    java保留两位小数的方法
    js循环便利json数据
    java计算一个月有多少天和多少周
    python--decorator装饰器
  • 原文地址:https://www.cnblogs.com/topspeedking/p/6405957.html
Copyright © 2020-2023  润新知