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,鼠标单击

  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9490168.html
Copyright © 2011-2022 走看看