Python语法(3)

Python语法(3)

今天我们来学习列表
列表是一种常见的变量类型,可以存储一列元素,在python中元素的类型可以是不同的,不过大多数情况下应该都是相同的。

列表的初始化

1.直接初始化

a = []#定义一个空列表
b = [1,2]#定义一个含有两个整数的列表
c = [1,"python",1.23] #定义一个含有多个类型元素的列表
print(a,b,c)

2.通过函数append来进行初始化

a = []
for i in range(5):
	a.append(0)#初始化5个0
print(a)

n = 4
print(n)

b =[]
for i in range(n):
	b.append(i*i)
print(b)

3.通过for循环语句初始化列表长度和每个位置上的数值

a =[0 for i in range(5)]#[0,0,0,0,0]
print(a)
#这里是一个简写,当然也可以写成for循环之前那种形式
'''
for i in range(5):
	a.append(i)
print(a)
'''
n = 4
b = [i*i for i in range(n)]
print(b)

**注意Python中for循环输入和C语言不太一样,例如下面的书写方式就是错误的

#这就是错误的书写方式
a = []
for i in range(5):
	a[i]=i

访问列表元素

Python中访问列表元素有两种,既可以是负数,也可以是正数,他们的指代方式是不同的,注意数组的下标除非刻意不然正数都是从0开始的,这里我们用一张图可以较为直观的看到。

这张图可以较为清楚且直观的理解
接下来是例子

a = [0,1,2]
print(a[0],a[1],a[2])#输出为0 1 2
a[0]=3#更改某一位置上的值
print(a)#直接输出这个列表
print(a[-1])#输出最后一个元素  -1%3=2所以表示的是a[2]

使用循环语句遍历列表

1.可以利用下标访问

a = [1,2,3,4,5,6]
for i in  range(5):
	print(a[i],end=" ")

2.可以直接写在for循环里面

a = [1,2,3,4,5,6]
for i in a:
	print(i,end=" ")

列表的切片操作

列表的切片操作会返回一个新的列表。用法:a[begin:end]是一个左闭右开的区间,当然其中的是可以省略不写的。

a = [1,2,3,4,5,6]
print(a[1:4])
print(a[1:])#默认输出道列表最后
print(a[:4])#默认从开头输出
print(a[:])#默认输出全部
print(a[-4:-1])

切片也支持读写操作,可以一次改变多个值

a = [1,2,3,4,5,6]
a[1:4]=[2,3]
print(a)#输出[1,2,3,5,6]

列表的复制

列表和其他变量不同,如果用等号作为复制方式,那么原列表和新列表是同一个列表,新列表修改了,原列表也跟着会变。

a = [1,2,3]
b = a
b[1]=4
print(a)#输出[1,4,3]

因此我们可以做一个浅拷贝,此时再修改新列表,原列表不会改变。

a = [1,2,3]
b =a[:]
b[1]=4
print(a)#输出[1,2,3]

列表的运算

1.列表的加运算可以将两个列表拼接起来,得到一个新列表

a = [1,2,3]
b = [4,5,6]
print(a+b)
#输出[1,2,3,4,5,6]

2.列表的乘运算:
可以自身乘一个整数,可以将整数个自身拼接起来,得到一个新的列表

a = [1,2,3]
b = a*3
print(b)

列表的常用操作

a = [1,2,3]
#这里我并没有按照规则书写,只是列举一下
len(a)返回列表长度
a.append(x)在列表的末尾插入元素x
a.pop()删除最后一个元素,如果括号有参数,删除以参数作为下标的元素
a.reverse()将整个列表翻转
a.sort()将整个列表按照从小到大排序

大家可以试一试上述函数有么有返回值!!

嵌套列表

列表是一种元素,所以列表中的元素也可以是列表,这就跟C语言中二维数组很相似

a = [[1,2,3],[4,5,6],[7,8,9]]
print(a[1][0])#输出方式
a[1][0]=23#更改某一位置上的值
for i in range(len(a)):
	for j in range(len(a[i])):
		print(a[i][j],end=" ")
	print()
#两种输出方式上面是一种,下面也是一种
for i in a:
	for j in a[i]:
		print(j,end=" ")
	print()

嵌套列表的常用的初始化方式有两种:
1.用append()函数初始化

a = []

for i in range(3):
    row = []
    for j in range(3):
        row.append(i * 3 + j)
    a.append(row)

print(a)

2.采用for循环直接初始化

a = [[i * 3 + j for j in range(3)] for i in range(3)]
print(a)

如果大家是初学者的话,建议大家不要使用简写方式,容易出现错误,等以后熟练掌握了再使用简写方式也不迟!!!

额外补充

1.当读入一行整数时候,可以使用

a =list(map(int,input().split()))

使用这个语句就可以读入一行整数,同理,浮点数只需要将int改成float
2.min函数和max函数
这里min函数和max函数可以一次性比较多个值

a = 1
b = 3
c = 6
print(max(a,b,c))

3.特殊用法

a[::-1]可以返回一个逆序的新列表
a = [1,2,3]
print(a[::-1])

4.上课时候老师也讲到了一些用法,这里我没有写上,所以额外补充一下

#列表中extend()也是数据的添加操作,如果添加的是一个列表,会将列表中的元素逐一加入
list2 = ["Du463","Joker"]
list1.append(list2)
print(list1)
#列表insert函数也是添加,但是可以在列表中选中地址位置添加,不像他们只能在末尾添加
list1.insert(2,"xiaocaibucai")
print(list1)
#删除数据,del函数
del list1[1]#可以删除一个元素,也可以删除一个列表
print(list1)
#.pop()函数#删除下标索引的值
#remove函数可以删除元素,会自动寻找列表中有没有指定元素
#clear函数清空整个列表
#sort()函数,默认升序,如何实现降序呢?
list1.sort(reserve = True)#这样就是降序

image

posted @ 2023-09-20 19:47  du463  阅读(12)  评论(0编辑  收藏  举报