Python3.9学习笔记(慕羽★)(四)

   虽然起步有点晚,但是终于开始学习Python了,本系列文章作为我的学习笔记,主要是为了自己温故知新用,同时也与感兴趣的你们进行分享,本篇文章作为本笔记的第四篇,主要涉及字典和元组的相关语法。


本篇文章主要涉及内容索引

      31、字典
      32、字典的创建
      33、字典元素的获取
      34、字典的常用操作
      35、获取字典视图
      36、字典元素的遍历
      37、字典的特点及字典生成式
      38、元组
      39、元组的创建
      40、元组的遍历

文章正文部分

  31、字典
   (1)字典是Python内置的数据结构之一,与列表一样是一个可变序列
   (2)字典以键值对的方式存储数据,冒号之前的叫做键,冒号之后的叫做值,字典是一个无序的序列,如下面的字典a中存在三对键值对
a = {'第一次:': 92, '第二次:': 96, '第三次:': 98}
   (3)字典的实现原理:字典的实现原理与查字典类似,查字典是先根据部首或拼音查应的页码,Python中的字典是根据key查找value所在的位置,字典中元素的存放位置并不是根据存放的先后决定的
   (4)字典中的键是不可变序列(比如字符串序列、整数序列)
   (5)列表和字典是可变序列,是可以执行增删改操作的
  32、字典的创建
   字典的创建可以采用{}的方式,也可以使用dict函数进行字典的创建,若{}内为空,则创建一个空字典,例子如下:
dir1 = {'第一次': 92, '第二次': 96, '第三次': 98,'总结':'稳步上升'}
print(dir1)
dir2 = dict(第一次=92,第二次=96,第三次=98,总结='稳步上升')
print(dir2)
dir3={}
print(dir3)
   运行结果如下:
{'第一次': 92, '第二次': 96, '第三次': 98, '总结': '稳步上升'}
{'第一次': 92, '第二次': 96, '第三次': 98, '总结': '稳步上升'}
{}
  33、字典元素的获取
   字典的创建可以采用[]的方式,也可以使用get()函数进行字典的创建,所不同的是,若采用[]方法,如果字典中不存在指定的key(键),抛出keyError异常(报错),例子如下:
dir1 = {'第一次': 92, '第二次': 96, '第三次': 98,'总结':'稳步上升'}
print(dir1['第一次'])
print(dir1['第四次'])
   运行结果如下:
92
KeyError: '第四次'
   若采用get()方法,如果字典中不存在指定的key,并不会抛出KeyError而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回,例子如下:
dir1 = {'第一次': 92, '第二次': 96, '第三次': 98,'总结':'稳步上升'}
print(dir1.get('第二次'))
print(dir1.get('第四次'))
print(dir1.get('第四次',99))
   运行结果如下:
96
None
99
  34、字典常用操作
   (1)字典元素的查询
   可以使用in或not in 来判断指定的key(键)在字典中是否存在 若用in查询则存在返回True,不存在返回False,用not in则相反,例子如下:
dir1 = {'第一次': 92, '第二次': 96, '第三次': 98,'总结':'稳步上升'}
print('第二次' in dir1)
print('第四次' in dir1)
   运行结果如下:
True
False
   (2)字典元素的删除
   可以使用del删除指定的键值对,也可以使用clear清空字典,例子如下:
dir1 = {'第一次': 92, '第二次': 96, '第三次': 98,'总结':'稳步上升'}
print(dir1)
del dir1['第一次']
print(dir1)
dir1.clear()
print(dir1)
   运行结果如下:
{'第一次': 92, '第二次': 96, '第三次': 98, '总结': '稳步上升'}
{'第二次': 96, '第三次': 98, '总结': '稳步上升'}
{}
   (3)字典元素的新增和修改
   使用方法见例子:
dir1 = {'第一次': 92, '第二次': 96, }
print(dir1)
dir1['第三次']=98
print(dir1)
dir1['第三次']=100
print(dir1)
   运行结果如下:
{'第一次': 92, '第二次': 96}
{'第一次': 92, '第二次': 96, '第三次': 98}
{'第一次': 92, '第二次': 96, '第三次': 100}

  35、获取字典视图
   (1)keys()函数可以获取字典中所有key
dir1 = {'第一次': 92, '第二次': 96, }
key1=dir1.keys()
print(key1)
print(list(key1))  # 转换成列表
   运行结果如下:
dict_keys(['第一次', '第二次'])
['第一次', '第二次']
   (2)values()函数可以获取字典中所有value
dir1 = {'第一次': 92, '第二次': 96, }
key2=dir1.values()
print(key2)
print(list(key2))  # 转换成列表
   运行结果如下:
dict_values([92, 96])
[92, 96]
   (3)items()函数可以获取字典中所有key、value对
dir1 = {'第一次': 92, '第二次': 96, }
key3=dir1.items()
print(key3)
print(list(key3))  # 转换成列表
   运行结果如下:
dict_items([('第一次', 92), ('第二次', 96)])
[('第一次', 92), ('第二次', 96)]
  36、字典元素的遍历
   常采用语法for item in scores : print( item )对字典元素进行遍历,打印出的item是键,若想打印出值,可以采用之前介绍的字典元素获取的两种方法scores[item]或者scores.get[item],具体例子如下:
dir1 = {'第一次': 92, '第二次': 96, }
for key1 in dir1:
    print(key1,dir1[key1],dir1.get(key1))
   运行结果如下:
第一次 92 92
第二次 96 96
  37、字典的特点及字典生成式
   (1)字典的特点
   ① 字典中的所有元素都是一个key-value对, key不允许重复, value可以重复
   ② 字典中的元素是无序的
   ③ 字典中的key必须是不可变对象,字典也可以根据需要动态地伸缩
   ④ 字典会浪费较大的内存,是一种使用空间换时间的数据结构
   (2)字典生成式
   我们可以使用内置函数zip()生成一个字典,用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表
key1=['One','Two','Three']
value1=[92,96,98]
dir1={key_1: value_1   for key_1,value_1  in  zip(key1,value1)}
dir2={key_1.upper(): value_1   for key_1,value_1  in  zip(key1,value1)}
print(dir1)
print(dir2)
   运行结果如下:
{'One': 92, 'Two': 96, 'Three': 98}
{'ONE': 92, 'TWO': 96, 'THREE': 98}
   有以下几点需要说明一下zip()函数的两个参数分别是储存键和值的列表名,for后面参数是生成字典后,字典中键的变量和值的变量,若在键的变量后加.upper()函数则将键中每个元素转换成大写字母表示

在这里插入图片描述

  38、元组
   (1)元组是Python内置的数据结构之一,是一个不可变序列
   (2)不可变序列与可变序列:① 不变可变序(字符串、元组),没有增、删,改的操作 ②可变序列:(列表、字典),可以对序列执行增、删、改操作,对象地址不发生更改
# 列表
date_1=[10,15,20]
print('原列表:', date_1,'内存地址:',id(date_1))
date_1.append(40)
print('修改后列表:', date_1,'内存地址:',id(date_1))

# 字符串
str1='hell0'
print('原字符串:', str1,'内存地址:',id(str1))
str1+='world'
print('修改后字符串:',str1,'内存地址:',id(str1))
   运行结果如下:
原列表: [10, 15, 20] 内存地址: 2233720452352
修改后列表: [10, 15, 20, 40] 内存地址: 2233720452352
原字符串: hell0 内存地址: 2233720445104
修改后字符串: hell0world 内存地址: 2233724995248
   可以发现修改前后列表的内存地址没有改变,像这样的称之为可变序列,而字符串的地址发生了改变,像这样的称之为不可变序列
  39、元组的创建
   (1)元组的创建有两种种方式:直接小括号、使用内置函数tuple()。对于只包含一个元组的元素需要使用逗号和小括号,即对于只有一个元素的元组需要在其后面加一个逗号,用来跟字符串相区别
# 直接创建(小括号可以省略)
date_1 = (10, 15, 20)
print(date_1, type(date_1))
date_1 = 10, 15, 20  # 第一种方式可以省略小括号
print(date_1, type(date_1))
# 使用函数tuple进行创建
date_1 = tuple((10, 15, 20))
print(date_1, type(date_1))
# 创建只有一个元素的元组
date_1 = (10,)  # 对于只有一个元素的元组需要在其后面加一个逗号,用来跟字符串相区别
print(date_1, type(date_1))

# 创建空元组
date_1=()
print(date_1, type(date_1))
date_1 = tuple()
print(date_1, type(date_1))

   运行结果如下:
(10, 15, 20) <class 'tuple'>
(10, 15, 20) <class 'tuple'>
(10, 15, 20) <class 'tuple'>
(10,) <class 'tuple'>
() <class 'tuple'>
() <class 'tuple'>
   (2)不可变序列与可变序列:① 不变可变序(字符串、元组),没有增、删,改的操作 ②可变序列:(列表、字典),可以对序列执行增、删、改操作,对象地址不发生更改
# 列表
date_1=[10,15,20]
print('原列表:', date_1,'内存地址:',id(date_1))
date_1.append(40)
print('修改后列表:', date_1,'内存地址:',id(date_1))

# 字符串
str1='hell0'
print('原字符串:', str1,'内存地址:',id(str1))
str1+='world'
print('修改后字符串:',str1,'内存地址:',id(str1))
   运行结果如下:
原列表: [10, 15, 20] 内存地址: 2233720452352
修改后列表: [10, 15, 20, 40] 内存地址: 2233720452352
原字符串: hell0 内存地址: 2233720445104
修改后字符串: hell0world 内存地址: 2233724995248
  40、元组的遍历
   用法如下所示:
# 获取单个元素
date_1 = (10, 15, 20)
print(date_1[1])
# 获取多个元素
for item in date_1:
    print(item)
   运行结果如下:
15
10
15
20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值