第四天
列表、元组、字典
列表
列表是Python中内置有序可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开;
本质上同变量一样,是存储数据的容器,并且可以存储不同类型的数据。列表是可更改的数据类型,意味着修改列表,在内存空间中的地址不会变。
A = [1,'xiaoWang','a', [2, 'b']]
列表的定义
两种定义方式:
A = [1,2,3,4]
b = (1,2,3,4)
a = list(b)
列表的使用
列表索引是从0开始的,我们可以通过下标索引的方式来访问列表中的值。
A = [1,2,3,"张三","李四"]
print(A[3]) #张三
也可以利用切片工具获取列表中的值。
A = [1,2,3,"张三","李四"]
print(A[1:3]) #[2,3]
列表For循环
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
for name in namesList:
print(name) #xiaoWang xiaoZhang xiaoHua
列表While循环
namesList = [‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’]
length = len(namesList)
i = 0
while i<length:
print(namesList[i])
i+=1
列表常见操作
1、列表中添加元素
通过append可以向列表添加元素。
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
namesList.append('xiaoLi')
for name in namesList:
print(name)
通过extend可以将另一个列表的元素添加到列表中。
A = [1,2,3]
B = [2,3,4]
A.extend(B)
for item in A:
print(item) # 1 2 3 2 3 4
通过insert在指定位置index前插入元素object。
A = [1,2,3,4]
A.insert(1,5)
for item in A:
print(item) # 1 5 2 3 4
2、列表中查找元素
in(存在),如果存在那么结果为true,否则为false。
A = [1,3,5,7]
b = 3.in(A)
print(b) # True
not in(不存在),如果不存在那么结果为true,否则false。
A = [1,3,5,7]
b = 8.not in(A)
print(b) # True
count(),统计某个元素在列表中出现的次数。没有则返回0。
A = [1,3,5,7,6,3,5]
b = A.count(3)
print(b) # 2
index(),查看指定值在列表中的位置。没有则报错
A = [1,3,5,7,6,3,5]
b = A.index(3)
print(b) # 1
3、列表元素修改
列表元素的修改,也是通过下标来实现的。
A = [1,2,3,4]
A[1] = 9
for item in A:
print(item) # 1 9 3 4
4、列表元素的删除
列表元素的常用删除方法有三种方式:
del:根据下标进行删除。
A = [1,2,3,4,5]
del A[2]
for item in A:
print(item) # 1 2 4 5
# del A 则删除整个列表
pop:使用列表的pop()方法删除并返回指定(默认为最后一个)位置上的元素,如果给定的索引超出了列表的范围则抛出异常。
A = [1,2,3,4,5]
b = A.pop()
print(b) # 5
for item in A:
print(item) # 1 2 3 4
remove:删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。
A = [1,2,3,4,5]
A.remove(2)
for item in A:
print(item) # 1 3 4 5
clear:清空列表。
A = [1,2,3,4,5]
A.clear()
print(len(A)) # 0
5、列表的排序
列表的排序可以通过下面两个方法实现:
sort方法:按照指定规则对所有元素进行排序,默认规则是直接比较规则大小。
aList = [13, 4, 5, 16, 7, 19, 11, 13, 15, 17]
aList.sort()
print(aList) # [4, 5, 7, 11, 13, 13, 15, 16, 17, 19]
reverse方法:将列表逆置。
aList = [13, 4, 5, 16, 7, 19, 11, 13, 15, 17]
aList.reverse()
print(aList) # [17, 15, 13, 11, 19, 7, 16, 5, 4, 13]
6、列表常用内置函数
len()
返回列表中的元素个数,同样适用于元组、字典、集合、字符串等。
max()、 min()
返回列表中的最大或最小元素,同样适用于元组、字典、集合、range对象等。
sum()
对列表的元素进行求和运算。
7、列表切片
切片操作不是列表特有的,python中的有序序列都支持切片操作,如字符串,元组。切片的返回结果类型和切片对象类型一致,返回的是切片对象的子序列,如:对列表切片返回一个列表,字符串切片返回字符串。
格式: list[start : end : step]
start是切片起点索引,end是切片终点索引,但切片结果不包括终点索引的值。step是步长默认是1。
A = [13, 4, 5, 16, 7, 19, 11, 13, 15, 17]
A1 = A[0:2]
print(A1) # [13,4]
A2 = A[5:]
print(A2) #[19, 11, 13, 15, 17]
A3 = A[-4:-2]
print(A3) #[11, 13]
A4 = A[1:8:2]
print(A4) #[4, 16, 19, 13]
元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
A = (1,2,3,4,5)
tup1 = ('physics', 'chemistry', 1997, 2000)
元组的操作
1、元组的访问
元组可以使用下标索引来访问元组中的值。
A = (1,2,3,'张三')
print(A[3]) #张三
2、元组的修改
元组属于不可变序列,一旦创建,用任何方法都不可以修改其元素。
3、元组的遍历
A = (1,2,3,'张三')
for item in A:
print(item,end = ' ') # 1 2 3 张三
4、元组的删除
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。
A = (1,2,3,'张三')
del A
print(A)
# name 'A' is not defined 此时A已经被删除
5、元组常见内置函数
len(tuple):计算元组元素个数。
max(tuple):获得元组的最大值。
min(tuple):获得元组的最小值。
tuple(seq):将列表转换为元组。
6、列表与元组对比
元组中的数据一旦定义就不允许更改,对不需要改变的数据进行“写保护”将使得代码更加安全。
元组没有append()、extend()和insert()等方法,无法向元组中添加元素。
元组没有remove()或pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素。
从效果上看,tuple( )冻结列表,而list( )融化元组。
字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
A = {key1 : value1, key2 : value2 }
**注意:key值不允许重复 value值允许重复 **
student = {'name':'张三', 'sex':'男', 'address':'北京'}
字典的常见操作
1、根据键访问值
student = {'name':'张三', 'sex':'男', 'address':'北京'}
print(student['name']) #张三
print(student['address']) #北京
print(student['family']) # KeyError: 'family'
# 注意:如果使用的是不存在的键,则程序会报错。
如果我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值。
student = {'name':'张三', 'sex':'男', 'address':'北京'}
age = student.get('age')
print(age) #none
age = student.get('age',18) #若student中不存在age 设置默认值18
print(age) # 18
2、修改字典的数据
student = {'name':'张三', 'sex':'男', 'address':'北京'}
name = input('请输入学生新的名字')
student['name'] = name
print(student['name'])
3、添加字典数据
student = {'name':'张三', 'sex':'男', 'address':'北京'}
id = int(input('请输入学生的编号'))
student['id'] = id
print(student) #{'name': '张三', 'sex': '男', 'address': '北京', 'id': 3}
4、删除字典数据
del:用于删除字典;删除后,字典完全不存在了,无法再根据键访问字典的值。
student = {'name':'张三', 'sex':'男', 'address':'北京','id':3}
del student['id']
print(student) # {'name':'张三', 'sex':'男', 'address':'北京'}
clear:只是清空字典中的数据,字典还存在,只不过没有元素。
student = {'name':'张三', 'sex':'男', 'address':'北京','id':3}
student.clear()
print(student) # {}
5、字典的遍历
遍历字典的键key
student = {'name':'张三', 'sex':'男', 'address':'北京','id':3}
for key in student.keys():
print(key)
# name sex address id
遍历字典的值value
student = {'name':'张三', 'sex':'男', 'address':'北京','id':3}
for value in student.values():
print(value )
# 张三 男 北京 3
遍历字典的元素
student = {'name':'张三', 'sex':'男', 'address':'北京','id':3}
for item in student.items():
print(item)
# ('name', '张三')
# ('sex', '男')
# ('address', '北京')
# ('id', 3)
遍历字典的键值对
student = {'name':'张三', 'sex':'男', 'address':'北京','id':3}
for key,value in student.items():
print("key=%s,value=%s"%(key,value))
# key=name,value=张三
# key=sex,value=男
# key=address,value=北京
# key=id,value=3
最后
这次主要介绍了列表、元组和字典三种类型,我们在后续使用过程中可以选择合适的类型对数据进行操作。










网友评论