Python学习

时间:2021-6-12 作者:qvyue

第四天

列表、元组、字典

列表

列表是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

列表常见操作
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

最后

这次主要介绍了列表、元组和字典三种类型,我们在后续使用过程中可以选择合适的类型对数据进行操作。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。