zoukankan      html  css  js  c++  java
  • 数据类型(列表)

    列表 [ ]

    列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的正删改查操作。(值可以重复,有序

    定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

    特性:

    1.可存放多个值

    2.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

    3.可修改指定索引位置对应的值,可变

    创建

    L1 = []#定义空列表
    L2 = ['a','b','c','d']#存4个值,索引为0~3
    L3 = ['abc','def','ghi']#嵌套列表

    查询

    L2.index('a')#返回指定元素的索引值,从左向右查找,找到第一个匹配

    L2.count('a')#统计指定元素的个数

    L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
    print(L2[2])#通过索引取值,打印
    print(L2[-1])#通过索引从列表右边开始取值,打印
    print(L2[-2])
    print(L2.index('a'))#返回指定元素的索引值,从左向右查找,找到第一个匹配,打印
    print(L2.count('a'))#统计指定元素的个数,打印
    

      输出

    c
    2
    1
    0
    2

    索引(下标)从0开始,从左往右增加

    切片(顾头不顾尾!从左往右!)

    :

    L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
    print(L2[0:3])#返回从索引0至3的元素,不包括3,打印
    print(L2[:-1])#返回从索引0至最后一个值,不包括最后一个值,打印
    print(L2[3:6])#返回从索引3至6的元素,打印
    print(L2[3:])#返回从索引3至最后所有的值,打印
    print(L2[:3])#返回从索引1至3的值,打印
    print(L2[1:6:2])#返回索引1至6的值,但步长为2(每隔一个元素,取一个值),打印
    print(L2[:])#返回所有的值,打印
    print(L2[::2])#按步长为2,返回所有值,打印
    

    输出

    ['a', 'b', 'c']
    ['a', 'b', 'c', 'd', 'a', 'e', 1]
    ['d', 'a', 'e']
    ['d', 'a', 'e', 1, 2]
    ['a', 'b', 'c']
    ['b', 'd', 'e']
    ['a', 'b', 'c', 'd', 'a', 'e', 1, 2]
    ['a', 'c', 'a', 1]

    追加

    L2.append("A")#列表最后面追加A

    L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
    L2.append("A")#列表最后面追加A
    print(L2)#打印
    

      输出

    ['a', 'b', 'c', 'd', 'a', 'e', 1, 2, 'A']

    增加

    L2.insert(3,"B")#在列表的索引为3的位置 插入 一个值 B

    L2 = ['a','b','c','d','a','e',1,2]
    L2.insert(3,"B")#在列表的索引为3的位置 插入 一个值 B
    print(L2) #打印

      输出

    ['a', 'b', 'c', 'B', 'd', 'a', 'e', 1, 2]  

    修改

    重新赋值

    L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
    L2[3] = "Boy"#把索引3的元素修改为Boy
    print(L2)#打印
    L2[4:6] = "Jack Chen"#把索引4-6的元素改为Jack Chen,不够的元素自动增加
    print(L2) #打印
    

      输出

    ['a', 'b', 'c', 'Boy', 'a', 'e', 1, 2]
    ['a', 'b', 'c', 'Boy', 'J', 'a', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2]

    删除

    L2.pop()#删除最后一个元素

    L2.remove('c') #删除从左找到的第一个指定元素

    del L2[4]#用python全局的删除方法删除 指定索引元素

    del L2[3:7]#删除多个元素(按索引)

    L2 = ['a','b','c','Boy','J','a','c','k',' ','C','h','e','n',1,2,4,4,4]
    L2.pop()#删除最后一个元素
    print(L2)#打印
    L2.remove('c') #删除从左找到的第一个指定元素
    print(L2) #打印
    del L2[4]#用python全局的删除方法删除 指定索引元素
    print(L2)#打印
    del L2[3:7]#删除多个元素(按索引)
    print(L2) #打印

      输出

    ['a', 'b', 'c', 'Boy', 'J', 'a', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2, 4, 4]
    ['a', 'b', 'Boy', 'J', 'a', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2, 4, 4]
    ['a', 'b', 'Boy', 'J', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2, 4, 4]
    ['a', 'b', 'Boy', 'C', 'h', 'e', 'n', 1, 2, 4, 4]

    循环

    for

    L2 = ['a','b','c','Boy','J','a','c','k',' ','C','h','e','n',1,2]
    for i in L2:
        print(i)
    

      输出

    a
    b
    c
    Boy
    J
    a
    c
    k

    C
    h
    e
    n
    1
    2

     range

     range()就是生成一个列表为执行for循环

    用list将range转换成一个列表使用即可

    >>> range(1,100)
    range(1, 100)
    >>> list(range(1,100))
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 
     30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
     57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
     84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> list(range(0,100,2))
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 
    56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

     枚举

    enumerate()#将索引值和元素组成列表,打印

    names = ["old_driver",'rain','jack','shanshan','peiqi','black_girl']
    for i in enumerate(names):#将索引值和元素组成列表,打印
        print(i)
    

      输出

    (0, 'old_driver')
    (1, 'rain')
    (2, 'jack')
    (3, 'shanshan')
    (4, 'peiqi')
    (5, 'black_girl')

    不想有括号

    for index,i in enumerate(names)#将索引和元素分辨定义为一个临时变量

    names = ["old_driver",'rain','jack','shanshan','peiqi','black_girl']
    for index,i in enumerate(names):
        print(index,i)
    

      输出

    0 old_driver
    1 rain
    2 jack
    3 shanshan
    4 peiqi
    5 black_girl

     排序

    L2.sort()#按照ASCII码的顺序排序(符号-大写字母-小写字母)

    L2.reverse()#反转

    L2 = ['a','Z','d','#','z','y','A','e','h','!']
    L2.sort()#按照ASCII码的顺序排序(符号-大写字母-小写字母)
    print(L2)
    L2.reverse()#反转
    print(L2)

      输出

        ['!', '#', 'A', 'Z', 'a', 'd', 'e', 'h', 'y', 'z']

        ['z', 'y', 'h', 'e', 'd', 'a', 'Z', 'A', '#', '!']

     

    扩展(拼接)

    print(L2+n)#拼接

    R.extend(m)#将m拼接到R后面

    L2 = ['a','b','c','d','e','f']
    n = [1,2,3,4]
    print(L2+n)#拼接
    m = ['H','I','J','K','L']
    R = [7,8,9]
    R.extend(m)#将m拼接到R后面
    print(R)
    

      输出:

    ['a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3, 4]
    [7, 8, 9, 'H', 'I', 'J', 'K', 'L']

    清空

    L2.clear()#清空列表

    L2 = ['a','b','c','d','e','f']
    L2.clear()#清空列表
    print(L2)
    

      输出

                   []

    复制(浅copy)

    L1=L2.copy()#复制列表

    L2 = ['a','b','c','d','e','f']
    L1=L2.copy()#复制列表
    print(L2)
    print(L1)
    

      输出

    ['a', 'b', 'c', 'd', 'e', 'f']
    ['a', 'b', 'c', 'd', 'e', 'f']

    浅复制的是把列表第一层的id独立创建一层,子列表就不行了。

    深copy

    import copy

    list = copy.deepcopy(names)

    names = ["old_driver",'rain','jack',[1,2,3,4]]
    import  copy
    list = copy.deepcopy(names)
    print(names,list)
    names[3][2] = -10
    print(names,list)
    

      输出

        ['old_driver', 'rain', 'jack', [1, 2, 3, 4]] ['old_driver', 'rain', 'jack', [1, 2, 3, 4]]
        ['old_driver', 'rain', 'jack', [1, 2, -10, 4]] ['old_driver', 'rain', 'jack', [1, 2, 3, 4]]

    长度

    len()

    names = ["old_driver",'rain','jack','shanshan','peiqi','black_girl']
    print(len(names))
    

      输出

        6

    #分割
    >>> s = 'hello world'
    >>> s.split(' ')
    ['hello', 'world']
    >>> s2= 'hello,world'
    >>> s2.split(',')
    
    #连接
    >>> l = ['hi','eva']
    >>> '!'.join(l)
    'hi!eva'

    看源码按住ctrl,鼠标单击

  • 相关阅读:
    matlab中关于使用length导致的不稳定状况。
    matlab 批量读入文件夹中的指定文件类型 (目录级数不限)
    matlab中的图像裁剪,图像抽取,反转,镜像。
    反锐化掩模 unsharp masking【转载】
    matlab 将图像切分为N*N像素的小块
    Python2.7.3 Tkinter Entry(文本框) 说明
    基于JQuery的列表拖动排序
    MAC如何删除开机自启动程序
    MAC配置SVN服务器
    关于MAC清倒废纸篓,项目正在使用
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9490168.html
Copyright © 2011-2022 走看看