如何创建列表?
只需使用中括号将所有准备放入列表中的元素给包裹起来,不同的元素之间使用逗号进行分割即可。区别于其他语言的数组,里面的元素可以不是同一类型,也可以放入同一列表中
举个栗子
a = [1,9.6,'a',"hello"]
print(a[0])
1
print(a[1])
9.6
print(a[2])
a
print(a[3])
hello
这里分别是整型数字、浮点型数字、字符和字符串,但是它们可以被放入同一个变量名为a的列表里,这就是python里的列表有别于其他编程语言的数组,他的内容可以更加自由。
对于创建的列表的查询,python有许多种方式:
可以使用for循环遍历进行查询
也可以通过小标索引进行单独查询
可以通过切片来查询指定部分的内容
也可以通过定位的方式进行指定查询
python列表的查询方式还是很丰富,下面就一一介绍他们在不同的使用场景都有不同的优势,后期使用时可以根据情况自行选择一种或者多种。
使用for循环遍历查询
使用for循环是一种比较常用的方法,建立变量i依次获取a列表中的内容直到结束
a = [1, 9.6, 'a', "hello"]
for i in a:
print(i)
下标索引进行单独查询
a = [1, 9.6, 'a', "hello"]
print(a[0])
print(a[1])
print(a[2])
print(a[3])
print(a[-1])
print(a[-2])
print(a[-3])
print(a[-4])
正序索引规律
1 | 9.6 | a | hello |
---|---|---|---|
a[0] | a[1] | a[2] | a[3] |
倒序索引规律
1 | 9.6 | a | hello |
---|---|---|---|
a[-1] | a[-2] | a[-3] | a[-4] |
列表切片查询
切片查询可以查找指定范围内的列表数据
a = [1, 9.6, 'a', "hello"]
print(a[0:2])
print(a[1:3])
print(a[:2])
print(a[1:])
print(a[:])
print(a[::2])
print(a[::-2])
定位查询
使用count来确定列表的成员中指定元素的数量
list.count(num) # 查找num元素在list列表中的数量
使用index来查询指定名称元素的索引值,当然index也可以在某个范围内查找某个元素的索引值
list.index(num, start, end) # 查找num元素在list[start]到list[end]列表范围内的索引值
举个栗子
a = [1, 9.6, 'a', 1, "hello"]
print("a中有", a.count(1), "个1")
print("hello在a中的位置是:", a.index("hello"))
print("在a[2]~a[4]之间1的索引值为:", a.index(1, 2, 4))
b = a.copy()
print(b)
使用append可以将一个指定的元素添加到列表的末尾
使用extend可以将多个指定的元素添加到列表的末尾
使用insert可以将指定的一个元素插入到列表指定的位置,第一个参数指定插入的位置,第二个参数指定插入的元素
举个栗子
a = [1, 9.6, 'a', 1, "hello"]
a.append(666)
print(a)
a.extend([3, 4, 5])
print(a)
a.insert(1, 2)
print(a)
使用remove可以指定元素的名称进行列表删除
使用pop可以指定元素的序列号进行列表删除
使用clear可以清除整个列表
举个栗子
a = [1, 9.6, 'a', 1, "hello"]
a.remove("hello")
print(a)
a.pop(1)
print(a)
a.claer()
print(a)
对于列表的修改,可以直接进行重新赋值
举个栗子
a = [1, 9.6, 'a', 1, "hello"]
a[1] = 2
print(a)
a[2:] = [3, 4, 5]
print(a)
使用sort可以对列表进行排序
使用reverse可以对列表进行翻转
举个栗子
a = [1, 7, 3, 2, 9]
a.sort()
print(a)
a.reverse()
print(a)
可以使用+对列表进行拼接
可以使用 * 对列表进行重复
举个栗子
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = a + b
print(c)
d = c * 2
print(d)
python对于列表的嵌套,就是多维列表的概念
举个栗子
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in a:
for each in i:
print(each)
浅拷贝:使用copy来对列表进行复制
深拷贝:可以使用deepcopy对元素进行深拷贝
相当于浅拷贝只是指向了与拷贝列表相同的地址如果被拷贝对象的值发生了拷贝,拷贝对象也会发生改变
深拷贝则是拷贝内容值,拷贝值不会收到被拷贝值得影响
举个栗子
import copya = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
x = a.copy()
y = copy.deepcopy(a)
a[1][1] = 0
print(a)
print(x)
print(y)
列表推导式可以减少代码量,同时列表推导式的效率比一般程序要快上一倍左右
基本公式
[expression for target in iterable]
expression:执行的内容表达式
target:使用公式目标变量
iterable:列表来源
a = [1, 2, 3, 4, 5]
b = [i for i in a]
print(b)
矩阵处理
使用for循环的实现
使用列表推导式
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
diag = []
diag = [i * matrix[i][i] for i in range(len(matrix))]
print(diag)
。。。。待更新
Python基础 P1 变量
Python基础 P2 数字类型与优先级
Python基础 P3 分支与循环
其他内容
文章索引