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

    python基础数据类型--列表(list)

    列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增、删、改、查等操作

    一列表的增、删、改、查

    1增:

    1.1增加到最后   append()

    li = ['alex','wusir','egon','女神','taibai']
    li.append('xiaoqiang')
    print(li)

    1.2按索引位置添加 insert()

    li = ['alex','wusir','egon','女神','taibai']
    li.insert(3,'xingxing')
    print(li)

    1.3迭代的去增加 extend()

    li = ['alex','wusir','egon','女神','taibai']
    li.extend('gaoya')#最终添加为元素
    print(li)

    2删

    2.1按索引删除    pop()

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    li.pop(0)
    print(li)

    2.2按元素删除remove()

    li = ['alex','wusir','egon','女神','taibai']
    li.remove('taibai') 
    print(li)

    2.3清空clear()

    li = ['alex','wusir','egon','女神','taibai']
    li.clear()
    print(li)

    2.4直接删除del()

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    del li
    print(li)           会报错,因为被删除了  

    2.5切片删除del()

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    del [2:]
    print(li)  

    3改

    3.1按索引去改

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    li[0]='xiaoqiang'
    print(li)  

    3.2按切片去改

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    li[0:2]='learnpython'
    print(li)

    4查

    4.1 for循环

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    for in li:
        print(i)

    4.2切片去查

    1
    2
    3
    li = ['alex','wusir','egon','女神','taibai']
    l1 = li[0:2]
    print(l1)

    二、列表的排序

    li = [1,3,4,5,7,6,8,9,2]
    
    li.sort()  #正向排序
    li.sort(reverse=True)#倒向排序
    li.reverse()  #反转
    print(li)
    

    三、列表是嵌套

    li = ['taibai','武藤兰','苑昊',['alex','egon','89'],'23',]
    lan=li[1][2]        #找到兰字
    print(lan)
    

    四、join和split  

    join()方法

    S.join():其中S是字符串连接符,join中参数必须是可迭代对象,join()方法输出可迭代对象的每一个元素,并用连接符将每一个元素连接

    s = 'ilovepython'
    l = ['C','Java','C++','Ruby','PHP','Python']
    print('_'.join(s))
    # >>> 'i_l_o_v_e_p_y_t_h_o_n'
    print('_'.join(l))
    # >>> 'C_Java_C++_Ruby_PHP_Python'
    

    split()方法

    字符串和列表之间的转换

    s = 'i_l_o_v_e_p_y_t_h_o_n'
    print(s.split('_'))
    # >>> ['i', 'l', 'o', 'v', 'e', 'p', 'y', 't', 'h', 'o', 'n']
    

    五、range()  

     

    # range:相当于都是数字的列表 [0,1,2,3,4.....,99]
    # range(起始值,终止值)
    for i in range(0,100):
        print(i)
    
    # 默认起始值不写默认为0
    for i in range(100):
        print(i)
    
    # 同索引一样,range也可以加步长,加步长的话默认的0起始值就不可以省略
    for i in range(0,100,2):
        print(i)
    
    for i in range(100,0,-2):
        print(i)
    

    六、 enumerate()方法------有索引有值

    枚举----对于一个可迭代的/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时或得索引和值

    lst = ['python','java','c','ruby','Go']
    for i in enumerate(lst):
        print(i)
    

     

    for index, name in enumerate(lst, 1):   ####---1 是起始位置,可以修改100等等
        print(index, name)
    

      

    七、 深浅copy()简析 

    # 普通赋值运算
    lst_1 = ['Python','Java',['Ruby','PHP','C++']]
    lst_2 =lst_1 # lst_2 = lst_1[:] 同理
    
    print(lst_1)
    print(id(lst_1))
    print('*'*10)
    print(lst_2)
    print(id(lst_2))
    
    # >>> ['Python','Java',['Ruby','PHP','C++']]
    # >>> 18623368
    # >>> **********
    # >>> ['Python','Java',['Ruby','PHP','C++']]
    # >>> 18623368
    
    
    # 浅copy()方法:第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。
    lst_1 = ['Python','Java',['Ruby','PHP','C++']]
    lst_2 =lst_1.copy() # lst_2 = lst_1[:] 同理
    
    lst_1[2].append('new_lanuage')
    print(lst_1,id(lst_1))
    print('*'*10)
    print(lst_2,id(lst_2))
    
    # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12001800
    # >>> **********
    # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12015048
    
    # 深copy()方法:对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
    import copy
    lst_1 = ['Python','Java',['Ruby','PHP','C++']]
    lst_2 = copy.deepcopy(lst_1)
    
    lst_1[2].append('new_lanuage')
    print(lst_1,id(lst_1))
    print('*'*10)
    print(lst_2,id(lst_2))
    
    # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12533000
    # >>> **********
    # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++']] 12533512
    

      

     

  • 相关阅读:
    vs2017 vs2019 打开cs文件提示无法识别的GUID格式
    A股和B股票的区别?
    选股:“均线是水,K线是舟,量是马达!”的选美理念!
    什么是K线?K线的详解!
    5日均线MACD
    炒股的常见技术指标
    选股票几大原则:趋势原则,强势原则,分批原则
    金融蝴蝶效应
    股市里的大户和散户
    期货平仓/强制平仓/爆仓-股市平仓建仓
  • 原文地址:https://www.cnblogs.com/a438842265/p/8461774.html
Copyright © 2011-2022 走看看