python学习日记-列表

73 阅读1分钟

列表有很多种操作。 列表赋值、复制、切片 复制:可以直接用.copy() 浅拷贝, 也可以切片;浅拷贝的复制只能作用于一维列表,二维列表需要深拷贝才能真正的拷贝。 浅拷贝:复制的是引用的地址, 深拷贝: 是真的复制了一个样的出来, 深拷贝的用法:import copy copy.deepcopy(list)

test_list = [1, 2, 3]
print(test_list)
test_list2 = test_list
copy_test_list = test_list.copy()
slice_test_list = test_list[:]
print('copy_test_list: ', copy_test_list)
print('slice_test_list: ', slice_test_list)
print(test_list2 is test_list)
print(copy_test_list is test_list)
print(slice_test_list is copy_test_list)
打印出来的结果
[1, 2, 3]
copy_test_list:  [1, 2, 3]
slice_test_list:  [1, 2, 3]
True
False
False

深拷贝写法

import copy
test_matrix_list = [[1, 2, 3], [4, 5, 6]]
copy_matrix_list = copy.deepcopy((test_matrix_list))
print(copy_matrix_list)
print(copy_matrix_list is test_matrix_list)

列表循环可以使用for循环,也可以使用列表推导

index_list = [i for i in range(len(test_list))]
print('index_list:', index_list)
index_list2 = []
for i in range(len(test_list)):
    index_list2.append(i)
print('index_list2:', index_list2)
# 打印结果如下
index_list: [0, 1, 2]
index_list2: [0, 1, 2]

推导式还可以加条件

test_list = [1, 2, 3, 4, 5]
index_list = [i for i in range(len(test_list) ) if i % 2 == 0]
print('index_list:', index_list)

多维数据的推导式写法 推导式优点:代码行数少,效率高 缺点:条件太多的时候代码不易读,不利于代码维护和阅读。用循环还是推导式要自己看着办。写好注释很重要。

test_matrix_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
test_filter_list = [test_matrix_list[i][num] for i in range(len(test_matrix_list)) for num in range(len(test_matrix_list[i])) if test_matrix_list[i][num] % 3 == 0]
test_filter_list: [3, 6, 9]