Python学习第三章:列表、元组和字典

3.1 序列简介

序列就是指一种包含多项数据的数据结构,序列包含的多个数据项按顺序排列,可通过索引来访问成员。
Python中常用的序列类型包括:列表、元组、字典等。本章中主要学习列表与元组,这二者其实特别相似,最主要的区别在于:元组是不变的,元组一旦构建出来,程序就不能够修改元组中的成员了;但是列表是可变的,程序可以修改列表中所包含的元素。
在实际应用过程中,如果需要数据固定不变,通常而言是将其存放在元组当中,反之,则要将其存放在列表当中。另外有些时候,程序需要用到不可以变的对象,这时候对象就必须用元组来存放,比如字典中key值。

3.2 列表与元组的通用用法

'''
my_list =[1,2,3,5,4,3,5,6]
print(my_list)
my_tuple=(1,2,3,4,5,6,4,5)
print(my_tuple)
'''

#通过索引访问元素

a_tuple = (5,'e','erwe',55,'ewe,',2)

print(a_tuple[1])
print(a_tuple[2])

print(a_tuple[1:3])
print(a_tuple[1:5:2])

#加法与乘法

b_tuple = (5,5,6,3,2,'pwc')

sum_tuple = a_tuple+b_tuple
print(sum_tuple)
mul_tuple = b_tuple*3
print(mul_tuple)

#in运算符
print('pwc' in sum_tuple)

Pycharm运算结果
在这里插入图片描述
上述例子都是使用的元组进行进行验证,将其换做列表也是通用的。
另外还有一些别的功能方法,比如求列表或者元组的长度len(),最大值max(),最小值min(),还有序列的封包与解包:

  • 程序把多个值赋给一个变量的时候,Python会自动将多个值封装成元组,这种功能被称为封包
  • 程序允许将序列直接赋值给多个变量,此时序列的各个元素会被依次赋值给每个变量,被称为解包
vals = 10,23,25,56
print(vals) #(10,23,25,56)

a,b,c,d = vals
print(a,b,c,d,sep='|')
list = 'da',23,'fas',54,2
print(list)
a1,a2,a3 = 1,2,3
print(a1,a2,a3)

在这里插入图片描述
在序列解包的时候,也可以只解出部分变量,剩下的依然使用列表变量保存,为了使用这种解包方式,Python允许在左边被赋值的变量之前添加*,那么该变量就代表一个列表,从而保存多个集合元素

first, second,*last = (1,2,3,3,56,7,5,6)
print(first)
print(second)
print(last)

*begin, end = [4,5,4,8,5,2,1]
print(begin)
print(end)

pst,*pnd,prd = [2,58,6,2,7,5,1,2]

print(pst)
print(pnd)
print(prd)

在这里插入图片描述

3.3 使用列表

上文中提到过,列表与元组最大的区别在于:元组是不可改变的,列表是可以改变的,所以元组支持的功能,列表都能支持,并且列表支持对元素的修改,可以认为是加强版的元组

3.3.1 创建列表

Python中除了直接赋值的方法完成创建一个新的列表外,还可以通过list方法,将元组、区间转换为列表:

#创建列表,使用list函数
a_tuple = ('python','is','great',2019,10)
#将元祖转换为列表
a_list = list(a_tuple)
print(a_list)

a_range = range(1,5)
print(a_range)
b_list = list(a_range)
c_list = list(range(1,5))
print(b_list)
print(c_list)

在这里插入图片描述
同样的,与list方法对应的还有tuple方法,该方法就是将列表或者区间变换为元组,所以此处就不一一列举了

3.3.2 增加列表元素

为列表增加元素可调用列表的append方法,使用该方法会将添加的元素直接放置在列表的最后面。
append可以接受单个值,也可以接受元组、列表等,但不同于使用加法的情况,它会将元组或者列表当做是一个元素,而形成了嵌套关系。

#增加一个元素
my_list = ['python','is','great',2019,10]
my_list.append(6)
print(my_list)
a_tuple = (1993,10,6)
my_list.append(a_tuple)
print(my_list)
my_list.append(['ok',65])
print(my_list)

在这里插入图片描述
如果不希望增加的元组或者列表等作为一个单独的元素加入,可以使用extend方法。

my_list = ['python','is','great',2019,10]
a_tuple =(1993,10,6)
my_list.extend(a_tuple)
print(my_list)
my_list.extend((['ok',2]))
print(my_list)

在这里插入图片描述
如果想要在列表的中间插入某类元素,可以使用insert方法

my_list = ['python','is','great',2019,10]
my_list.insert(4,'ok')
print(my_list)

在这里插入图片描述

3.3.4 删除列表元素

删除列表元素可以使用del语句,del语句是Python中的一种语句,不仅能够删除列表中的元素,也可以用于删除各种变量等。使用del删除列表中的元素,不仅仅可以删除一个还可以删除一段元素

my_list = ['python','is','great',2019,10]
#删除第一个元素
del my_list[1]
print(my_list)
del my_list[:2]
print(my_list)

在这里插入图片描述

3.3.5 修改列表元素

列表的元素相当于变量,因此程序可以直接列表的元素赋值,这样就可以修改元素的

my_list = ['python','is','great',2019,10]
my_list[1]= 'are'
print(my_list)

在这里插入图片描述
此外程序还以通过slice方法对列表的一部分赋值

a_list = list(range(1,5))
print(a_list)
a_list[1:3]=['x','y']
print(a_list)
a_list[2:2]= 'a'
print(a_list)
a_list[3:4]=[]
print(a_list)
a_list[1:3]='pwc'
print(a_list)

在这里插入图片描述

3.3.6 列表常用的方法

列表中通常还包含以下的方法可以被使用:

  • count():用于统计列表中某个元素出现的次数
  • index():用于判断某个元素在列表中出现的位置
  • pop():用于将列表当做“栈”使用,实现元素的出栈功能
  • reverse():用于将列表的元素反向存放
  • sort():用于对列表的元素排序

3.4 使用字典

3.4.1 字典入门

字典也是Python提供的一种常用数据结构,主要用于存放具有映射关系的数据。
字典相当于保存了两组数据,其中一组数据是关键数据被称为key;另外一组数据可以通过key来进行访问,被称为value。

3.4.2 创建字典

Python中创建字典同样提供了两种方法,一种是直接使用花括号的方法进行创建;另一种是使用dict方法来创建字典。
在使用花括号创建字典的时候,花括号中应该包含有多个key-value对,key与value之间使用英文冒号隔开,多个key-value之间使用英文逗号隔开

scores = {'语文':98,'数学':67,'英语':22}
print(scores)
empty_dict={}
dict2 = {(20,30):'good',30:'bad'}
print(dict2)
#需要注意的是,元组可以作为字典的key值,而列表不可以,因为列表一直在改变

在这里插入图片描述
在使用dict方法创建字典的时候,可以传入多个列表或者元组参数作为key-value对,每个列表或元组将被当成一个key-value对,因此,这些列表与元组都只能包含有两个元素。

veg = [('app',167),('banana',2.2),('tomato',4.5)]
dict1 = dict(veg)
print(dict1)
cars = [['bwm',15],['bence',26],['buike',23]]
dict2 = dict(cars)
print(dict2)
#使用关键字创建字典
dict3 = dict(a= 1.2,b=2.3)
print(dict3)

在这里插入图片描述

3.4.3 字典的基本用法

字典中的操作都是基于key的,

  • 通过key访问value值
  • 通过key添加key-value对
  • 通过key删除key-value对
  • 通过key修改key-value对
  • 通过key判断key-value对是否存在
veg = [('app',167),('banana',2.2),('tomato',4.5)]
dict1=dict(veg)
print(dict1['app'])

#如果对不存在的key赋值,就增加了新的key-value对

dict1['org']=2.3
print(dict1)

#删除的时候同样只需要删除key
del dict1['tomato']
print(dict1)
#对原有的key-value对赋值
dict1['app']=2.3
print(dict1)

在这里插入图片描述

3.4.4 字典中其他常用的方法

  • clear():清楚字典内的所有key-value对
  • get():通过key访问内容,是正统访问的方法
  • update():使用一个新的字典来对现有的字典进行更新,在执行更新的时候,现有的会被更新,没有的会被添加
  • items():用于获取所有的键值对
  • keys():用于获取所有的key
  • values():用于获取所有的values

3.4.5 使用字典格式化字符串

前面介绍过格式化字符串,再少量的情况下可以这么使用,但如果字符串模板含有大量的变量,按照顺序的方法就不是很好用了。,可以改在字符串模板中按照key指定变量,然后用字典为字符串模板中的key设值

temp = '书名是:%(name)s,价格是:%(price).2f'
book = {'name': 12.23, 'price': 21.23}
print(book)
print(temp % book)

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页