python语言基础-列表

列表

一.为什么需要列表?

省空间,易整体操作,相当于其它语言中的数组。

 

二.列表的创建格式:

  1. 列表对象名=[ 元素,英文逗号隔开]

  2. 列表对象名=list([元素,英文逗号隔开])
1 #第一种创建列表的方法:列表对象名=[元素,英文逗号隔开]
2 lst=['大圣','花果山',88,158,'大圣']     #列表元素有序、可重复、可混存任意类型
3 print(lst)
4 #第二种创建列表的方法:列表对象名=list([元素,英文逗号隔开])
5 lst1=list(['大圣','花果山',88,158,'大圣'])
6 print(lst1)

 

 

三.列表的特点:

  1. )列表元素按顺序排序 
  2. )索引映射唯一一个数据(从左往右数0开头,从右往左数-1开头)
  3. )列表可以存储重要数据
  4. )任意数据类型混存
  5. )根据需要动态分配和回收内存

 

lst=['大圣','花果山',88,158,'大圣']
print(lst[-1],lst[2])    #['大圣',88]

四.列表的查询操作:

1.获取列表中指定元素的索引:

列表对象名.index(指定元素)  或者列表对象名.index(指定元素,start,stop)

1 lst=['大圣','花果山',88,158,'大圣']
2 print(lst.index('七甜'))    #ValueError: '七甜' is not in list
3 print(lst.index('花果山',1,4)) #1

2.获取列表中的单个元素:

  1. )正向索引从0到n+1
  2. )逆向索引从n到-1
  3. )指定索引不存在,indexError

 

1 lst1=list(['大圣','花果山',88,158,'大圣'])
2 #获得索引为2的元素
3 print(lst1[2])    #88
4 #获得索引为-1的元素
5 print(lst1[-1])   #大圣

 

3.获得列表中的多个元素_切片操作

1 #列表的切片:列表名[start,stop,step]
2 lst=[10,20,30,40,50,60,70,80,90]
3 print(lst[1:6:1])   #[20,30,40,50,60]
  1. )语法格式:列表名[start:stop:step]
  2. )切出来的片段是新列表
    1 print('原列表',id(lst))
    2 lst2=lst[1:6:1]
    3 print('切的片段',id(lst2))
    4 '''
    5 原列表 2087280981952
    6 切的片段 2087280992960
    7 总结:切出来的片段是新的列表
    8 '''
  3. )start默认为0,stop默认最后一个元素,step默认为1

     1 lst=[10,20,30,40,50,60,70,80,90]
     2 print(lst[1:6:1])      #[20, 30, 40, 50, 60]
     3 #这两种形式都默认step为1
     4 print(lst[1:6:])       #[20, 30, 40, 50, 60]
     5 print(lst[1:6])        #[20, 30, 40, 50, 60]
     6 #默认start为0
     7 print(lst[:6:2])       #[10, 30, 50]
     8 #默认stop为列表中最后一个元素
     9 print(lst[1::2])       #[20, 40, 60, 80]
    10 print(lst[1::4])       #[20, 60]
  4. 逆位无所谓
    1 1 #逆位就逆位咯~
    2 2 lst=[10,20,30,40,50,60,70,80,90]
    3 3 print(lst)
    4 4 print(lst[0:-5:1])      #[10,20,30,40]

五.列表的增删改操作

1.列表元素的增加操作

  1. )append()在列表的末尾添加一个元素
    1 #append()向列表的末尾添加一个元素
    2 lst=[10,20,30]
    3 print('添加元素之前',lst,id(lst))
    4 lst.append(100)
    5 print('添加元素之后',lst,id(lst))
    6 '''
    7 添加元素之前 [10, 20, 30] 2202366392320
    8 添加元素之后 [10, 20, 30, 100] 2202366392320
    9 '''
  2. )extend()在列表的末尾添加一个或多个元素
    1 #extend()向列表的末尾添加一个或多个元素
    2 lst=[10,20,30] 3 lst2=['hello','world'] 4 lst.append(lst2) #将lst2作为一个元素添加进lst 5 print(lst) 6 #[10, 20, 30, ['hello', 'world']]
    1 #extend()向列表的末尾添加一个或多个元素
    2 lst=[10,20,30]
    3 lst2=['hello','world']
    4 lst.extend(lst2)  #将lst2的多个元素添加到lst中
    5 print(lst)
    6 #[10, 20, 30, 'hello', 'world']

     

  3. )insert()在列表的任意位置添加一个元素
    1 #insert()在列表的任意位置添加一个元素
    2 lst=[10,20,30]
    3 lst3=[True,False,'hello']
    4 lst.insert(1,lst3)    #插在第一个元素的位置
    5 print(lst)
    6 #[10, [True, False, 'hello'], 20, 30]
  4. )切片,在列表的任意位置添加至少一个元素
    1 #切片:在列表的任意位置添加一个或多个元素
    2 lst=[10,20,30]
    3 lst3=[True,False,'hello']
    4 lst[1:]=lst3  #意为:从第一个元素起到结束这一部分被切掉,替换成lst3
    5 print(lst)
    6 #[10, True, False, 'hello']

2.列表元素的删除操作

1.remove() 只能删除一个,若有重复元素则删除第一个,被删元素不存在则报valueError

 


 

2.pop()    有索引删除指定索引元素,无索引删除列表中最后一个元素,指定索引不存在则报IndexError

                  

 

 

 

3.切片      删除一个或多个元素

4.clear()  删除所有元素

5.del      删除列表

 3.列表元素的修改操作

  •  为指定索引元素赋予一个新值
  • 为指定的切片赋予一个新值

 

 4.列表元素的排列操作

  •  调用sort()方法

 

 

 

  • 调用内置函数sorted()

 

 

 

 

两者默认排序均为升序,都可以在括号内指定reverse=True将排列顺序改为降序,区别在于,调用内置函数sorted()会产生新的列表对象,而前者却不会。

注意:列表对象名.sort() & sorted(列表对象名)

六.列表生成式,即生成列表的格式

  • 语法格式:         [  i*i       for     i      in     range(1,10)  ]

      表示列表元素的表达式  自定义变量       可迭代对象

 

 

 

 



 

        

posted @ 2021-06-20 16:18  蓝色森林lin  阅读(107)  评论(0)    收藏  举报