Python基本数据类型之列表

1.了解列表


list1 = ['abc', 123, {1, 2, 3},[2,3]]

  • Python中的列表有点类似与C语言中的数组的概念;

  • Python中的列表是可变的,且列表内部由元素组成,元素可以是任意对象,也就是说列表的数据项不需要具有相同的类型,比如整形、浮点型、字符串、其他类的对象、实例等都可以作为列表的元素。

2.列表的定义

下面是4种定义列表的方法:


lst = list()  #定义一个空列表
lst = []  #定义一个空列表
lst = [1,2,3.5,'abc']  #元素可以是任意数据类型
lst = list(range(10))  #定义一个从0到9的列表

3.列表的可变性


    a = 1
    print(id(a))    #输出:262330544
    a = 2
    print(id(a))    #输出:262330560

  • 列表的可变与不可变性,是对内存地址而言的;
  • 被初始化的列表,可以通过列表的API接口对列表的元素进行增删改查;

4.列表的访问

列表是有序集合,所以列表可以通过索引访问


  lst = [1,2,3,4,5]  #初始化一个列表lst

  • 通过 索引 访问列表里面的值,列表名[索引大小](索引是从0开始计算的);

  print(lst[1])  #输出2

  • 通过 index方法 获取值对应的索引,列表名.index(值);

  print(lst.index(4))  #输出 3

  • 通过 count方法 获取值在列表中出现的次数,列表名.count(值);

  print(lst.count(2))  #输出1

  • 通过 len()函数 获取列表的长度,len(列表名);

    
    print(len(lst))  #输出5
    
    

5.列表的插入


  lst = [1,2,3,4,5] #初始化一个列表

  • append方法 :在列表的末尾插入数据;

  lst.append(5) 
  print(lst)  输出[1, 2, 3, 4, 5, 5]

  • insert方法 :在列表的任意位置插入数据;

  lst.insert(0, 100) 
  print(lst)  输出[100, 1, 2, 3, 4, 5]

  • extend方法 :添加可迭代对象的元素;

  lst.extend(range(10))
  print(lst)   输出[1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  • + :叠加两个列表元素;

  lst_new = lst + [1,2,3]  
  print(lst_new)   输出 [1, 2, 3, 4, 5, 1, 2, 3]

  • * :复制列表元素;

  lst_new = lst * 3
  print(lst_new)   输出 [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

6.列表的删除


  lst = [1,2,3,4,5]  #初始化一个列表

  • remove方法 :移除从左自右的第一个匹配的元素;

  lst.remove(3) 
  print(lst)   输出[1, 2, 4, 5]

  • pop方法 :带值的情况下,移除指定索引的元素,在不带值的情况下,移除最后一个元素;

  lst.pop(2)
  print(lst)  输出[1, 2, 4, 5]
  lst.pop()
  print(lst)  输出[1, 2, 3, 4]

  • clear方法 :清空整个列表;

  lst.clear()
  print(lst) 输出[]

7.列表的排序


lst = [1,2,3,4,5]  #初始化一个列表

  • reverse方法 :将列表中的元素反向;

   lst.reverse() 
   print(lst)  输出[5, 4, 3, 2, 1]

  • sort方法 :给元素排序,(注:reverse控制指定是正向还是反向,默认是False,代表升序);

  lst.sort()
  print(lst)  输出[1, 2, 3, 4, 5]
  lst.sort(reverse=True)
  print(lst)  输出[5, 4, 3, 2, 1]

  • in 关键字 :判断元素是否在列表里面;

  if 1 in lst:
    print('yes')  输出yes

8.列表的复制


  lst = [1,[1,2,3],3,4,5]
  lst_new = lst.copy()
  print(lst_new)  #输出[1, [1, 2, 3], 3, 4, 5]
  lst[1][1] = 100
  print(lst_new)  #输出[1, [1, 100, 3], 3, 4, 5]

  • 浅拷贝 :如果改变原始列表的值,copy得到的新的列表的值会跟着改变;

  import copy #导入一个copy模块
  lst = [1,[1,2,3],3,4,5]
  lst_new = copy.deepcopy(lst)
  print(lst_new)   #输出[1, [1, 2, 3], 3, 4, 5]
  lst[1][1] = 100
  print(lst_new)  #输出[1, [1, 2, 3], 3, 4, 5]

  • 深拷贝 :注意需要导入一个copy模块,深拷贝和前拷贝相反,如果改变原始列表的值,copy得到的新的列表的值并不会跟着改变;

9.random模块


  import random  #导入random模块
  print(random.randint(1,100))   #输出1到99中任意一个整数
  print(random.choice(['x',3,5,7]))  #输出这四个元素中的任意一个
  print(random.randrange(1,100,2))  #输出1到99中的任意一个属于 2n+1 的值
  lst = [1,2,3,4,5]
  random.shuffle(lst)  #将lst列表打乱
  print(lst)

  • 需要导入一个 random模块

  • randint :取区间中任意一个值,注意区间是闭区间;

  • choice :从给出列表中随机取一个值;

  • randrange :左边是闭区间,右边是开区间;

  • shuffle :将列表打乱;

    原文作者:Winter
    原文地址: http://blog.itpub.net/69908432/viewspace-2636514/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞