列表学习笔记

一、插入操作

insert()

括号内有两个参数index和data,用于在指定索引处插入元素,如果索引大于列表长度,则直接插入末尾

a = [1,2,4,5,6]
a.insert(2,3)  # a = [1,2,3,4,5,6]
a.insert(12,3)   # a = [1,2,3,4,5,6,3] 

append()

将新元素添加到列表的末尾,函数括号内有一个参数,用于接收将要添加到列表末尾的元素值

a = [1,2,3,4]
a.append(1)   # a = [1,2,3,4,1]

二、删除操作

pop()

括号里面是要删除元素的下标,不写默认删除最后一个

a = [1,2,3,4,5,6,3]
a.pop(2)  # a = [1,2,4,5,6,3]
a.pop()   # a = [1,2,4,5,6] 

remove()

括号里面是要删除的元素的值,函数将会删除列表中所有值与所给值相等的元素

a = [1,2,3,4,5,6,3]
a.remove(3)  # a = [1,2,4,5,6]

del

del不是函数而是语句,后面填写要删除的元素

a = [1,2,3,4,5,6]
del a[2]  # a = [1,2,4,5,6]

三、查找操作

in

in 是 Python 中的成员运算符,用于检查一个值是否存在于某个容器对象中。
运算符功能: 在列表中查找指定元素,若找到,则返回True,否则返回False

my_list = [1,2,3,4,5]
m = 1
if m in my_list:
    print('1 found in the list.') 
else:
    print('1 not found in thr list')

index()

list.index(value, start, end)

  • value:所要查找的元素
  • start:搜索区间左端点,默认为0
  • end:搜索区间右端点,默认为区间长度
  • 搜索区间为左闭右开区间
    函数功能: 在列表的指定区间中找出特定元素首次出现的索引,若没有找到则会出现异常
my_list = [1,2,3,4,2,2]
try:
    i = my_list.index(2)     # i = 1
except ValueError:
    print('2 not found in the list.')
try:
    j = my_list.index(4,0,3) # 查找失败
except valueError:
    print('4 is not found in the list.')

四、创建操作

插入操作 & 列表解析

创建列表时既可以使用append()、insert()等函数结合迭代操作逐个插入元素,也可以使用列表解析的方法。
列表解析是一种简洁的构建列表方法,它允许用户使用单一的表达式在一行中创建一个新的列表。

列表解析的语法
new_list = [expression for item in iterable if condition]

  • expression:对每个元素执行的表达式,可以调用int()等函数对列表中的元素逐个进行初始化。若不需要进行处理就和item保持一致
  • item:迭代变量,代表可迭代对象中的每个元素
  • iterable:可迭代对象,如列表、元组、字符串等
  • condition: 过滤条件,仅当条件为真时才包含元素,若不填则默认为真

输入元素在同一行

先使用split()函数将一行输入切割陈若干字符串类型的变量存入字符串类型的列表中,然后使用int()等函数对列表中的每个元素进行类型转换即可得到所需列表。

my_list = input().split()   # 创建字符串类型列表
myIntList = [int(i) for i in my_list] # 通过解析操作转换成整型列表

输入元素不在同一行

(一)元素个数已知

使用for循环重复运行input()函数,将元素逐个存入列表中。

my_list = [] # 初始化整型列表
n = input()  # 获取元素个数
for _ in range(n):
    i = int(input())
    my_list.append(i)
(二)元素个数未知

使用while循环重复运行input()函数,将元素逐个存入列表中。

my_list = []
while True:
    i = int(input())
    if not i:  # 将0设置为截止标志
        break 
    my_list.append(i)

五、排序操作

sort()

list.sort(key=None, reverse=False)

  • key:自定义的比较函数
  • reverse: 规定是否按照降序排列,默认按照升序排列
    是否修改原列表:
# 定义一个函数作为排序键,按元素的倒数进行排序
def key_function(x):
    return 1 / x
my_list = [3,2,4,1,5,2]
my_list.sort() # my_list = [1,2,2,3,4,5]
my_list.sort(reverse = True) # my_list = [5,4,3,2,2,1]

sorted()

sorted(iterable, key=None, reverse=False)

  • iterable:所要排序的列表
  • key:自定义比较函数
  • reverse: 是否进行降序排列
    是否修改原列表:
# 定义一个函数作为排序键,按元素的倒数进行排序
def key_function(x):
    return 1 / x
my_list = [3,2,4,1,5,2]
new_list = sorted(my_list) # new_list = [1,2,2,3,4,5]

六、获取列表长度

判断列表是否为空

Python中列表在非空时表示True,列表为空表示False

listOne = []
listTwo = [1]
if listOne:
    print('The list is not empty')
if listTwo:
    print('The list is not empty')

len()

len(list)
函数功能: 返回列表的长度(列表中元素的个数)

listOne = []
listTwo = [1]
print(len(listOne)) # 0
print(len(listTwo)) # 1

七、二维列表

创建二维列表

直接创建

二维列表可以被当做元素类型为列表的列表,所以可以直接枚举所有元素初始化列表。但需要注意Python中不允许通过只规定列表大小的初始化,在创建列表时,所有的元素必须被明确赋值。

matrix = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
# 错误的创建方式
matrix = [3][3]
解析操作

和一维列表一样,二维列表也可以使用解析操作实现快速赋值。

row = 4  # 行数
matrix = [[int(i) for i in input().split()] for _ in range(row)]

修改二维列表的元素

二维列表中的实际元素类型是一维列表,其原理如下:

matrix = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
# 使用一重for循环遍历列表的时候,依次读取每一个列表
for row in matrix:
    print(row)
# 运行结果
# [1,2,3]
# [4,5,6]
# [7,8,9]

# 使用两重for循环才能找到特定元素
for row in matrix:
    for col in row:
        print(col,end=' ')
    print('\n')
# 运行结果
# 1 2 3 

# 4 5 6 

# 7 8 9 

除此以外,也可以直接通过索引找到所需元素

element = matrix[1][1] # element = 5
my_list = matrix[0]    # my_list = [1,2,3]

你可能感兴趣的:(Python学习笔记,学习,笔记,python,开发语言)