zoukankan      html  css  js  c++  java
  • Python 列表操作

        序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字,也就是它的位置,或索引,其中,第一个索引是0,第二个索引是1,依此类推。

        序列都可以进行包括索引,切片,加,乘,检查成员等操作。本篇文章主要从以下3个方面举例解释。

    a. 列表的索引,切片,步长;

    b. 列表的常用操作(如:增,删,改,查,以及其他操作);

    c. 列表的嵌套。

    1.列表的索引,切片,步长

        创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

    list1 = ['alex', 'Jenny', 2000];
    list2 = [1, 2, 3, 4, 5 ];
    list3 = ["a", "d", "r", "o"];

    与上一篇博客介绍字符串的索引一样,列表索引也是从0开始。列表可以进行切片、组合等。列表内部可以是多种数据类型的组合,先举一个例子,如例1:

    1 li = ['colin', 27, True, [1, 2, 3], {'name': 'colin'}, (22, 33)]
    2 print(li[0], type(li[0]))      # colin <class 'str'>
    3 print(li[1], type(li[1]))      # 27 <class 'int'>
    4 print(li[2], type(li[2]))      # True <class 'bool'>
    5 print(li[3], type(li[3]))      # [1, 2, 3] <class 'list'>
    6 print(li[4], type(li[4]))      # {'name': 'colin'} <class 'dict'>
    7 print(li[5], type(li[5]))      # (22, 33) <class 'tuple'>

    从上面代码可以发现,列表的内容可以是字符串,整型,布尔类型,列表,字典,元组等类型。

    同时也可以对列表进行切片操作,为了方便,对上面的列表操作,如例2:

    1 li = ['colin', 27, True, [1, 2, 3], {'name': 'colin'}, (22, 33)]
    2 print(li[0])                  # colin
    3 print(li[-1])                 # (22, 33)
    4 print(li[1:3])                # [27, True]
    5 print(li[:4])                 # ['colin', 27, True, [1, 2, 3]]
    6 print(li[::2])                # ['colin', True, {'name': 'colin'}]
    7 print(li[-1:-4:-2])           # [(22, 33), [1, 2, 3]]
    8 print(li[-1:2:-2])            # [(22, 33), [1, 2, 3]]

    2.列表的常用操作(如:增,删,改,查,以及其他操作)

       通常对列表增操作有3种方法:append(),insert(),extend();

       对列表的数据项进行修改或更新,通过使用append()方法来添加列表项,如下所示:

    1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
    2 l1.append('小温老师')
    3 print(l1.append('小温老师'))  # None
    4 print(l1)                      # ['colin', 'zengsir', '华女神', '小谢老师', '小温老师', '小温老师']
    5 l1.append([11, 22, 33])
    6 print(l1)                     # ['colin', 'zengsir', '华女神', '小谢老师', '小温老师', '小温老师', [11, 22, 33]]

       将元素插入到指定的索引位置,使用insert():

    1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
    2 l1.insert(0, 'xiaolin')    # 插入到指定索引位置
    3 print(l1)                   # ['xiaolin', 'colin', 'zengsir', '华女神', '小谢老师']
    4 l1.insert(-2, 'Jenny')
    5 print(l1)                   # ['xiaolin', 'colin', 'zengsir', 'Jenny', '华女神', '小谢老师']

    将插入的内容拆分成该成份的最小单元用extend()方法:

    1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
    2 l1.extend('abc')  
    3 print(l1)  # ['colin', 'zengsir', '华女神', '小谢老师', 'a', 'b', 'c']
    4 l1.extend([111, 222, 333])
    5 print(l1)   # ['colin', 'zengsir', '华女神', '小谢老师', 'a', 'b', 'c', 111, 222, 333]
    6 l1.extend(['colin', 'Jenny'])
    7 print(l1)  # ['colin', 'zengsir', '华女神', '小谢老师', 'a', 'b', 'c', 111, 222, 333, 'colin', 'Jenny']

     通常对列表删除操作作有4种方法:pop(),remove(),clear(),del():

    按索引删除,但是有返回值,使用pop()操作:

    1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
    2 ret = l1.pop(0)    # 按索引删除,但是有返回值
    3 print(ret)         # 有返回值,返回值为:colin
    4 print(l1)          # ['zengsir', '华女神', '小谢老师']

    按照元素删除使用remove()操作:

    1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
    2 l1.remove('华女神')
    3 print(l1)      # 按照元素删除  ['colin', 'zengsir', '小谢老师']

    清空列表但容器还在,使用clear():

    1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
    2 l1.clear()      # 去清空列表,但是容器还在
    3 print(l1)

    del() 删除有三种操作方法

     1 l1 = ['colin', 'zengsir',  '华女神', '小谢老师']
     2 # 按照索引删除
     3 del l1[0]    #  ['zengsir', '华女神', '小谢老师']
     4 print(l1)
     5 # 可以按照切片去删除(可以加步长)
     6 del l1[::2]
     7 print(l1)    # ['华女神']
     8 # 可以在内存级别删除整个列表
     9 del l1
    10 print(l1)     # 报错

     通常对列表改操作有两种方法:

    1 . 按照索引改元素

    2. 按照切片,或者切片+步长改元素

    例题:

     1 l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天老师']
     2 # 按索引去修改
     3 l1[2] = '男神'        
     4 l1[-1] = '泰迪'
     5 print(l1)    # ['alex', 'wusir', '男神', 'egon', '景女神', '文周老师', '泰迪']
     6 # 按照切片改
     7 l1[:2] = 'sbsbsb'    # 先清空位置,然后将内容添加到清空的区域
     8 print(l1)    # ['s', 'b', 's', 'b', 's', 'b', 'taibai', 'egon', '景女神', '文周老师', '日天老师']
     9 l1[:4] = [11, 22, 33, 44, 55, 66, 77]
    10 print(l1)   # [11, 22, 33, 44, 55, 66, 77, '景女神', '文周老师', '日天老师']
    11 # 按照切片+步长改
    12 l1[:3:2] = 'af'
    13 print(l1)  # ['a', 'wusir', 'f', 'egon', '景女神', '文周老师', '日天老师']

    通常对列表查操作有两种方法:

    1. 按索引,切片,切片+步长

    2. for循环

    1 l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天老师']
    2 for i in l1:
    3     print(i)

    其他方法(len(), count(), sort(), reverse()):

     1 l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天老师']
     2 print(len(l1))   # 查询总个数   7
     3 print(l1.count('alex'))  # 查询某个元素出现的次数   1
     4 l2 = [5, 2, 6, 3, 1, 4, 7, 9]
     5 l2.sort()   # 从小到大排序    
     6 print(l2)    # [1, 2, 3, 4, 5, 6, 7, 9]
     7 l2.sort(reverse = True)  # 从小到大排序
     8 print(l2)     # [9, 7, 6, 5, 4, 3, 2, 1]
     9 l2.reverse()    # 整体翻转
    10 print(l2)      [1, 2, 3, 4, 5, 6, 7, 9]

    元组操作:

    元组操作通常也有两类操作方法:

    1, 索引,切片,切片+步长

    2, for循环

    1 # 索引,切片,切片+步长
    2 info = ('colin', 100, True, [1, 2, 3], {'name':'Jenny'}, (22, 33))
    3 print(info[0])    # 索引
    4 print(info[:3])   # 切片
    5 print(info[::2])  #切片+步长
    1 # for 循环
    2 info = ('colin', 100, True, [1, 2, 3], {'name':'Jenny'}, (22, 33))
    3 for i in info:
    4     print(i)
    '''---应用场景:一些非常重要的数据,不允许所有人修改,所以放在元组中。---'''
    

     此外:

    1 # info[3].append(666)     # ('colin', 100, True, [1, 2, 3, 666], {'name': 'Jenny'}, (22, 33))
    2 # print(info)
    3 # info.append(666)          # 报错
    4 # print(info)
    从上可以说明,元组本身是不能修改的,但是元组内部嵌套了列表,字典等是可以修改。

    range()方法:

    1 ''' --- range() 一般和for 循环结合使用------------'''
    2 for i in range(1,11):
    3     print(i)       # 1 2 3 4 5 6 7 8 9 10
    4 ''' -----分隔--------'''
    5 for i in range(1, 11, 2):
    6     print(i)       # 1 3 5 7 9
    7 '''-------逆序切片----------'''
    8 for i in range(10, 1, -2):
    9     print(i)       # 10 8 6 4 2

    每日一练:

     1 '''-- 例:l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20] ---'''
     2 '''---------------找到alex的e元素。----------------------'''
     3 l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20]
     4 print(l3[0][2])
     5 '''---------------将wusir变成大写。----------------------------'''
     6 l3[1] = l3[1].upper()
     7 print(l3)
     8 '''---------------给此列表['taibai',99,'ritian'] 追加一个元素,'文周'---------'''
     9 l3[2].append('文周')
    10 print(l3)
    11 '''---------------将 'taibai' 首字母大写----------------------'''
    12 l3[2][0] = l3[2][0].capitalize()
    13 print(l3)
    14 '''---------------将 99 通过数字加1 的方式变成100,并放回原处-----------'''
    15 l3[2][1] = l3[2][1] + 1
    16 print(l3)
  • 相关阅读:
    GridView
    BaseAdapter
    ArrayAdapter,SimpleAdapter
    消息机制,Handler
    进度条对话框
    随机二选一
    (二十五)WebDriver API之上传文件
    (二十四)WebDriver API之警告框处理
    linux常用命令大全
    (二十三)WebDriver API之多窗口切换
  • 原文地址:https://www.cnblogs.com/colin1314/p/9437576.html
Copyright © 2011-2022 走看看