Python基础之列表

列表初识

列表的作用和定义

列表是python中使用最频繁的数据类型,在其他语言中一般称为数组;
用一个变量存储多个数据;
列表存储多个数据时,在中括号之间用逗号分隔多个数据;

语法定义:

变量名 = [数据1, 数据2, 数据3,...]
eg:
name_list = ["zhangsan", "lisi", "wangwu"]

列表存储数据的方式和取数据

  • 列表按顺序存储数据,从0开始,逐渐递增的存,你可以理解为琅琊榜中琅琊阁的信息柜,一个一个存过去,并且给柜子从0开始编号,每次+1;
  • 取数据的时候只需要按照柜子编号取即可;
  • 列表的索引从0开始,索引就是数据在列表中的数据编号,索引又可以被称为下标。从列表中取值时,如果超出索引范围,就会报错。

定义和取数据示例如下(在交互式下):

name_list = ["zhangsan", "lisi", "wangwu"]
name_list
['zhangsan', 'lisi', 'wangwu']
name_list[0]
'zhangsan'
name_list[1]
'lisi'

列表方法

列表方法查看

在ipython3交互式下,先定义一个空列表;再 空列表. 后面敲一下tab键,即可显示列表常用方法;例如:

In [1]: name_list = []

In [2]: name_list.
name_list.append   name_list.count    name_list.insert   name_list.reverse
name_list.clear    name_list.extend   name_list.pop      name_list.sort
name_list.copy     name_list.index    name_list.remove   

In [2]: name_list.

由此可见,列表方法有如下这些:

name_list.append   name_list.count    name_list.insert   name_list.reverse
name_list.clear    name_list.extend   name_list.pop      name_list.sort
name_list.copy     name_list.index    name_list.remove 

列表常用方法统计

序号 分类 关键字/函数/方法 说明
1 增加 list.insert(index, data) 在指定位置插入数据
list.append(data) 在末尾追加数据
list.extend(list2) 将列表2的数据追加到列表
2 修改 list[index]=data 修改指定索引的数据
3 删除 del list[index] 删除指定索引的数据
list.remove(data) 删除第一个出现的指定数据
list.pop() 删除末尾数据
list.pop(index) 删除指定索引数据
list.clear() 清空列表
4 统计 len(list) 测量列表长度
list.count(data) 检查数据在列表中出现的次数
5 排序 list.sort() 升序排序
list.sort(reverse=True) 降序排序
list.reverse() 逆序,反转

列表取值和取索引(index)

name_list = ["zhangsan", "lisi", "wangwu"]

# 列表取值,已知 内容在列表的位置(索引),根据索引来取值;注意,如果索引值超过范围的话,就会报错
print(name_list[2])

# 列表取索引,已知 内容,根据内容来确定内容在列表的位置;
# 注意,如果查的内容不是列表中的内容的话,就会报错
print(name_list.index("lisi"))

列表 修改指定索引的数据

name_list = ["zhangsan", "lisi", "wangwu"]
# 修改指定索引的数据;注意,如果索引超过了范围,就会报错,而不是在末尾新建一个数据,那是append该做的事
name_list[2] = "wangliu"
print(name_list)

列表增加(append,insert,extend)

1.append

name_list = ["zhangsan", "lisi", "wangwu"]
# 3.1 append 在列表末尾追加
name_list.append("liudi")
print(name_list)  # ['zhangsan', 'lisi', 'wangwu', 'liudi']

2.insert

name_list = ["zhangsan", "lisi", "wangwu"]
#3.2 insert 向列表指定索引位置添加数据,注意,不是进行替换,只是挤进去而已
print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.insert(1, "xiaoming")
print(name_list)  # ['zhangsan', 'xiaoming', 'lisi', 'wangwu']

3.extend

# 3.3 extend 向列表末尾分散的追加另一个列表的所有内容,注意是分散的追加
hero_list = ["hanxin", "zhangfei", "zhuge"]
print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.extend(hero_list)
print(name_list)  # ['zhangsan', 'lisi', 'wangwu', 'hanxin', 'zhangfei', 'zhuge']

列表删除数据(remove,pop,clear)

1.remove

name_list = ["zhangsan", "lisi", "wangwu"]
# 4.1 remove 删除列表中指定的数据,注意,输入的要删除的数据必须在列表内,否则会报错
# 如果列表中存在两个相同的元素时,remove方法会删除第一个出现的元素
print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.remove("zhangsan")
print(name_list)  # ['lisi', 'wangwu']

2.pop

name_list = ["zhangsan", "lisi", "wangwu"]
# 4.2 pop 默认删除列表最后一个数据,也可以删除指定索引的数据,指定索引时,不能超过范围,否则报错
print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.pop()
print(name_list)  # ['zhangsan', 'lisi']

name_list.pop(2)
print(name_list)  # ['lisi']

3.clear

name_list = ["zhangsan", "lisi", "wangwu"]
# 4.3 clear 清空列表
print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.clear()
print(name_list)  # []

del关键字删除列表元素和del注意事项

name_list = ["zhangsan", "lisi", "wangwu"]
# 使用del关键字可以删除列表中的元素;但在日常开发中,如果要删除列表中的元素,建议使用列表提供方法。
del name_list[1]
print(name_list)  # ['zhangsan', 'wangwu']

# del关键字的本质是将变量从内存中删除
name = "xiaoming"
print(name)
del name
# print(name)  # del将变量删除后,变量就无效了,不能再被调动,否则报错,所以本行必须被删除

列表统计(len,count)

1.len

name_list = ["zhangsan", "lisi", "wangwu"]

# len 统计列表中元素的个数
list_num1 = len(name_list)
print("列表中元素的个数为:", list_num1)
name_list.append("zhangsan")
list_num2 = len(name_list)
print("列表中元素的个数为:", list_num2)

2.count

name_list = ["zhangsan", "lisi", "wangwu"]
# count 统计列表中某一元素出现的个数
times = name_list.count("zhangsan")
print("列表中zhangsan出现的次数为:", times)

列表的升降序和逆序(反转) (sort,reverse)

升序sort

name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [2, 4, 1, 3, 8]

name_list.sort()
print("升序后姓名列表:", name_list)  # ['lisi', 'wangwu', 'zhangsan']
print("升序前数字列表:", num_list)  # [2, 4, 1, 3, 8]
num_list.sort()
print("升序后数字列表:", num_list)  # [1, 2, 3, 4, 8]

降序sort

name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [2, 4, 1, 3, 8]

print("降序前姓名列表:", name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.sort(reverse=True)
print("降序后姓名列表:", name_list)  # ['zhangsan', 'wangwu', 'lisi']
print("降序前数字列表:", num_list)  # [2, 4, 1, 3, 8]
num_list.sort(reverse=True)
print("降序后数字列表:", num_list)  # [8, 4, 3, 2, 1]

逆序reverse

name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [2, 4, 1, 3, 8]

print("逆序前姓名列表:", name_list)  # ['zhangsan', 'lisi', 'wangwu']
name_list.reverse()
print("逆序后姓名列表:", name_list)  # ['wangwu', 'lisi', 'zhangsan']
print("逆序前数字列表:", num_list)  # [2, 4, 1, 3, 8]
num_list.reverse()
print("逆序后数字列表:", num_list)  # [8, 3, 1, 4, 2]

应注意,无论是升降序还是逆序,都是直接对原列表做修改的,而不是临时修改

列表其他扩展

关键字,函数和方法的区别

关键字

关键字是Python内置的,具有特殊意义的标识符;
关键字比如del,直接使用,后面无需括号。

import keyword

print(keyword.kwlist)

"""
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue','def', 'del',
 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 
 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
 """

函数

函数封装了独立功能,可以直接调用;
函数的调用:

# 函数名(参数)
例如:print("hello world")

方法

方法和函数类似,封装了独立功能;
与函数不同的是,方法需要通过对象调用,表示针对这个对象要做的操作。
方法的使用:

# 对象.方法名()
例如:namelist.pop()

循环遍历

列表遍历就是 从头到尾 依次从列表中取数据;
每次循环都将 从列表中顺序的读取出来的数据放在临时变量中,然后执行相同的操作。
使用for进行迭代遍历。

遍历语法格式:

for 临时变量 in 列表:
    针对临时变量进行的操作

遍历示例:

name_list = ["zhangsan", "lisi", "wangwu"]
for i in name_list:
    print("本次读取的名字为:", i)

列表的应用场景

虽然python的列表可以存储不同的数据类型,比如同时存储字符串和数字;但在实际开发中,通常都是存储的同一类数据类型,然后通过迭代遍历列表中的数据,做相同的操作。

上一篇:设置 DKIM 以防止电子邮件遭到篡改


下一篇:域密钥标识的邮件DKIM简介