Python小白教学系列 | 列表详解

r囧r小猫 2022-02-25 06:27 917阅读 0赞

前言 :

为了方便观看效果,全文将print(xxxxx)和其对应的运行结果放在一起(在源代码中加入的运行结果,将其去掉即为源代码)

一、创建列表

1)什么是列表?

  1. 列表形如['saf','sf',5,'李笑男‘],是一个可以储存任意数据类型的集合。
  2. 需要注意的是,列表和数组不同,数组是储存统一数据类型的集合。

2)创建列表

  1. zero_li = [] #建立一个空列表
  2. li = [ 'http' , 'ftp' , 5 ] #建立一个有数据的列表

3)列表还能镶嵌

  1. li = ['http', 'ftp', 5, ['http', 5]]

二、列表的用法详解

1)索引

功能:指定获取列表中某一个元素

格式:

  1. 列表名称[数字]

示例:

  1. li = ['http', 'ftp', 5 ]
  2. print(li[2])
  3. 运行结果:
  4. 5
  5. print(li[0]) #0对应列表中第一个元素,依次类推
  6. 运行结果:
  7. http

2)切片

功能:指定获取多个元素

格式:

  1. li[:] #li列表中的所有元素
  2. li[1:] #li列表中除了第一个元素的其余元素
  3. li[2:] #li列表中除了前两个元素的其余元素
  4. li[:-1] #li列表除了倒数最后一个元素的其余元素
  5. li[:-2] #li列表除了倒数最后两个元素的其余元素
  6. li[:2] #li列表前两个元素
  7. li[::-1] #li列表中所有元素倒序

示例:

  1. li = ['http', 'ftp', 5, 9, 8]
  2. print(li[:])
  3. 运行结果:
  4. ['http', 'ftp', 5, 9, 8]
  5. print(li[2:]) #列表li = ['http', 'ftp', 5, 9, 8]
  6. 运行结果:
  7. [5, 9, 8]
  8. print(li[:-2]) #列表li = ['http', 'ftp', 5, 9, 8]
  9. 运行结果:
  10. ['http', 'ftp', 5]
  11. print(li[:2]) #列表li = ['http', 'ftp', 5, 9, 8]
  12. 运行结果:
  13. ['http', 'ftp']
  14. print(li[::-1]) #列表li = ['http', 'ftp', 5, 9, 8]
  15. 运行结果:
  16. [8, 9, 5, 'ftp', 'http']

3)重复

简单来说就是将列表中的数据复制n编追加在列表最后

  1. li = ['http', 'ftp', 5, 9, 8]
  2. print(li * 2)
  3. 运行结果:
  4. ['http', 'ftp', 5, 9, 8, 'http', 'ftp', 5, 9, 8]

4)连接

将多个列表连接起来

  1. li = ['http', 'ftp', 5, 9, 8]
  2. ll = ['ssh', 'apache']
  3. print(li + ll)
  4. 运行结果:
  5. ['http', 'ftp', 5, 9, 8, 'ssh', 'apache']

5)成员操作符

检测某某某是否在列表中,有返回值为True,反之为False

  1. li = ['http', 'ftp', 5, 9, 8]
  2. print('http' in li) #运行结果为 True
  3. print(8 in li) #运行结果为 True
  4. print('ssh' in li) #运行结果为 False

6)迭代(for循环)

迭代就是依次将列表中的元素赋值出来使用

  1. li = ['http', '迭代', 5.5, 6]
  2. for i in li:
  3. print(i)
  4. 运行结果:
  5. http
  6. 迭代
  7. 5.5
  8. 6

7)在列表里镶嵌列表型

简单来说就是在列表中取出指定元素,只是列表稍加复杂

  1. 帮助理解
  2. li = [['http', 80, 8080], ['ssh', 22, 2020]]
  3. 第一个[]: [0] [1]
  4. 第二个[]:[0] [1] [2] [0] [1] [2]
  5. 或: [-3] [-2] [-1] [-3] [-2] [-1]

示例:

  1. li = [['http', 80, 8080], ['ssh', 22, 2020]]
  2. print(li[0][0]) #第一个[]对应最外面的列表,第二个[]对应上一个[]对应的子列表
  3. 运行结果为: http
  4. print(li[0][2])
  5. 运行结果为: 8080
  6. print(li[1][-1])
  7. 运行结果为: 2020
  8. print(li[1][-2])
  9. 运行结果为: 22

三、列表增加元素

1、在列表中增加列表

格式:列表.extend(列表)

示例:

  1. li = ['http', '迭代', 5.5, 6]
  2. ll = ['ftp', 'ssh']
  3. li.extend([ll])
  4. print(li)
  5. 运行结果:
  6. ['http', '迭代', 5.5, 6, ['ftp', 'ssh']]

2、在列表末增加一个元素

格式:列表.append(元素)

示例:

  1. li = ['http', '迭代', 5.5, 6]
  2. li.append('ftp') #li列表添加ftp
  3. print(li)
  4. 运行结果:
  5. ['http', '迭代', 5.5, 6, 'ftp']

3、在列表末增加多个元素

格式:列表.extend(列表)

示例:

  1. 法一:
  2. li = ['http', '迭代', 5.5, 6]
  3. li.extend(['ftp', 'ssh']) #追加'ftp', 'ssh'
  4. print(li)
  5. 运行结果:
  6. ['http', '迭代', 5.5, 6, 'ftp', 'ssh']
  7. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~代码分割符
  8. 法二:
  9. li = ['http', '迭代', 5.5, 6]
  10. ll = ['ftp', 'ssh']
  11. li.extend(ll) #与上一个方法相同
  12. print(li)
  13. 运行结果:
  14. ['http', '迭代', 5.5, 6, 'ftp', 'ssh']
  15. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~代码分割符
  16. 法三:
  17. li = ['http', '迭代', 5.5, 6]
  18. ll = ['ftp', 'ssh']
  19. print(li + ll)
  20. 运行结果:
  21. ['http', '迭代', 5.5, 6, 'ftp', 'ssh']

4、在指定位置插入元素

格式:列表.insert(索引,元素)

示例:

  1. li = ['http', '迭代', 5.5, 6]
  2. li.insert(1, 'dns') #在索引1处插入字符串dns
  3. print(li)
  4. 运行结果:
  5. ['http', 'dns', '迭代', 5.5, 6]

四、列表的删除

1、删除最后一个元素

格式:列表.pop()

示例:

  1. li = ['http', '迭代', 5.5,6]
  2. a=li.pop()
  3. print(a)
  4. print(li)
  5. 运行结果:
  6. 6
  7. ['http', '迭代', 5.5]

2、删除指定元素

格式:列表.remove( xxx)

示例:

  1. li = ['http', '迭代', 5.5,6]
  2. li.remove(5.5) #用字符串删除
  3. print(li)
  4. 运行结果:
  5. ['http', '迭代', 6]
  6. li.remove(li[0]) #用索引值删除
  7. 运行结果:
  8. ['迭代', 6]

3、删除列表

格式:del 列表

示例:

  1. li = ['http', '迭代', 5.5,6]
  2. print(li)
  3. del li
  4. print(li)

运行结果:
在这里插入图片描述

五、修改列表中的元素

1、通过索引,重新赋值

格式:列表[索引] = ‘要赋的值’

示例:

  1. li = ['http', '迭代', 5.5, 6]
  2. li[1] = '通过索引'
  3. print(li)
  4. 运行结果:
  5. ['http', '通过索引', 5.5, 6]

2、通过切片,重新赋值

替换多个元素时更好用!

格式:列表[切片] = 要加入的列表

示例:

  1. li = ['http', '迭代', 5.5, 6]
  2. print(li[1:2])
  3. li[1:2] = ['通过切片','ssh']
  4. print(li)
  5. 运行结果:
  6. ['迭代'] #为li[1:2]值
  7. ['http', '通过切片', 'ssh', 5.5, 6]

六、查看列表元素和索引

1、查看某元素在列表中的个数

格式:列表.count(元素)

示例:

  1. li=[1,2,4,4,5,5,5]
  2. print(li.count(5))
  3. print(li.count(3))
  4. 运行结果:
  5. 3
  6. 0

2、查看元素的索引值

格式:列表.index(元素)

示例:

  1. li = ['ftp', 'http', 'ssh', 'http', 'ssh']
  2. # 0 1 2 3 4 对应的索引值
  3. print('索引值:' ,li.index('ftp'),'---->ftp')
  4. print('索引值:',li.index('http'),'-----http')
  5. print('索引值:',li.index('ssh'),'-----ssh')
  6. 运行结果:
  7. 索引值: 0 ---->ftp
  8. 索引值: 1 -----http
  9. 索引值: 2 -----ssh

七、列表的排序

1、从小到大排序 或 从大到小排序

在此需要引入sort以及sorted,以下是sort和sorted的简单区别

  1. sort: 是应用在 list 上的方法。
  2. sort 方法直接在源列表上更改。
  3. sorted: 可以对所有可迭代的对象进行排序操作。
  4. sorted 方法返回的是一个新的列表,不会更改源列表。

sorted 示例:

  1. li = [1, 2, 7, 4, 9, 5, 3]
  2. New_li = sorted(li)
  3. print('源序列:', li)
  4. print('从小到大排序:', New_li)
  5. print('从大到小排序:', New_li[::-1])
  6. 运行结果:
  7. 源序列: [1, 2, 7, 4, 9, 5, 3] #源列表不变
  8. 从小到大排序: [1, 2, 3, 4, 5, 7, 9]
  9. 从大到小排序: [9, 7, 5, 4, 3, 2, 1]

sort 示例:

  1. li = [1, 2, 7, 4, 9, 5, 3]
  2. li.sort()
  3. print('源序列:', li)
  4. print('从小到大排序:', li)
  5. print('从大到小排序:', li[::-1])
  6. 运行结果:
  7. 源序列: [1, 2, 3, 4, 5, 7, 9] #可以看到源列表被更改
  8. 从小到大排序: [1, 2, 3, 4, 5, 7, 9]
  9. 从大到小排序: [9, 7, 5, 4, 3, 2, 1]

2、打乱顺序

格式:random.shuffle(列表名)

  1. import random
  2. li = [1, 2, 3, 4, 5, 7, 9]
  3. random.shuffle(li)
  4. print(li)
  5. 运行结果:
  6. [7, 9, 2, 3, 1, 5, 4]

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,917人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python教学系列 | 集合

    集合概述 Python中的集合和数学中的集合类似,可以保存不重复的元素。它有可变集合(set)和不可变集合(frozenset)两种。 本文讲解的是set集合(无序可

    相关 Python教学系列| 类和对象 详解

    前言 类是面向对象编程的核心概念,面向对象程序设计是在面向过程程序设计的基础上发展而来的,它比面对过程编程具有更强的灵活性和扩展性。在此提醒初学者:想要在编程这条路上走的