元组的学习笔记

news2024/12/22 23:20:07

  • 列表  []     单身
  • 什么是字典  {}  二人世界

python内置的数据结构之一,与列表一样是一个可变序列(可以增删改操作的)
以键值对的方式存储数据,字典是一个无序的序列  -> hash(key)  通过哈希函数来计算存储位置,key一定是不可变的
字典的创建
使用花括号:  score={'张三':100,'李四':98,'王五':55}
第二种创建方式:使用内置函数   dict()
 


print('使用花括号创建')
score = {'张三': 100, '李四': 98, '王五': 55}
print(score, id(score))
print(type(score))
print('第二种创建方式:使用内置函数')
student = dict(name='liu', age=34)
print(student)
'''空字典'''
dit = {}
print(dit, type(dit))

print('=========获取字典中的值=======')
print('使用花括号创建')
score = {'张三': 100, '李四': 98, '王五': 55}

print(score['张三'])
# print(score['张1']) #如果查找的键不存在 会报错,KeyError: '张1'
print(score.get('张三'))
print(score.get('张1'))  # None  ,如果查找的键不存在
print(score.get('张1', 99))  # 如果查找的键张1不存在,给返回一个默认值

print('=======key的判断========')
print('张三' in score)
print('张三' not in score)

del score['张三']  # 删除指定的key-value对
print(score, id(score))
# score.clear()
print(score, id(score))
score['程力'] = 93
print(score)
score['程力'] = 95
print(score)

print('======获取所有的key========')
score = {'张三': 100, '李四': 98, '王五': 55}
keys = score.keys()
print(keys)  # dict_keys(['张三', '李四', '王五'])
print(type(keys))  # <class 'dict_keys'>
print(list(keys))  # ['张三', '李四', '王五'] 将所有建组成的视图转成列表

print('======获取所有的value========')
values = score.values()
print(values)  # dict_values([100, 98, 55])
print(type(values))  # <class 'dict_values'>
print(list(values))

print('======获取所有的key-value对========')
items = score.items()
print(items)  # dict_items([('张三', 100), ('李四', 98), ('王五', 55)]) ,转换之后的元素由元组组成-》 元组()

print('字典元素的遍历')
for i in score:
    print(i)  # 输出所有的列表中所有的键 key
    print(score[i], score.get(i))  # 获取键对应的值
print('字典元素的key不允许重复')
d = {'name': '张三', 'name': '李四'}  # key不允许重复,一旦重复出现值覆盖的情况
print(d)  # {'name': '李四'}

d = {'name': '张三', 'nick_name': '张三'}
print(d)

lst = [1, 2, 3, 4]
lst.insert(1, 100)
print(lst)

# d = {lst: 100}
# print(d)  # 可变对象不可以作为key  TypeError: unhashable type: 'list'

print('====================')

items = ['Fruits', 'books', 'Others']
prices = [85, 23, 52]
d = {i: prices for i, prices in zip(items, prices)}
print(d)

items = ['Fruits', 'books', 'Others']
prices = [85, 23, 52,30,40] #更长5个元素,但是只有前3个元素有效
d = {i: prices for i, prices in zip(items, prices)}#以元素少的那个列表来生成
print(d)

lst = ['张三', '李四', '王五']
score = [12, 23, 34, 45, 56]
item = zip(lst, score)
print(item)  # <zip object at 0x000001A9FAC29408>
print('=================')
print(list(item))  # [('张三', 12), ('李四', 23), ('王五', 34)]

lst = ['Fruits', 'Books', 'Carrit']
dit = {i.upper(): score for i, score in zip(lst, score)}
print(type(dit)) #<class 'dict'>
print(dit)    #{'FRUITS': 12, 'BOOKS': 23, 'CARRIT': 34}

下面为扩展阅读:

1. 直接创建空字典

dic = {}
print(type(dic))
# 输出结果:<class 'dict'>

2. 直接赋值创建字典

dic = {'name': 'Jack', 'age': 18, 'height': 180}
print(dic)
# 输出结果:{'name': 'Jack', 'age': 18, 'height': 180}

3. 通过关键字dict和关键字参数创建

dic = dict(name='Jack', age=18, height=180)
print(dic)
# 输出结果:{'name': 'Jack', 'age': 18, 'height': 180}

实例:

       •输出一个类似{ i : i*i }的字典

dic = dict()
for i in range(1, 5):
    dic[i] = i * i
print(dic)
# 输出结果:{1: 1, 2: 4, 3: 9, 4: 16}

4. 通过关键字dict和二元组列表创建

lis = [('name', 'Jack'), ('age', 18), ('height', 180)]
dic = dict(lis)
print(dic)
# 输出结果:{'name': 'Jack', 'age': 18, 'height': 180}

5. 通过关键字dict和zip创建

dic = dict(zip('abc', [1, 2, 3]))
print(dic)
# 输出结果:{'a': 1, 'b': 2, 'c': 3}

 6. 通过字典推导式创建

dic = {i: i ** 2 for i in range(1, 5)}
print(dic)
# 输出结果:{1: 1, 2: 4, 3: 9, 4: 16}

 7. 通过dict.fromkeys()创建

注意:通常用来初始化字典, 设置value的默认值

dic = dict.fromkeys(range(4), 'x')
print(dic)
# 输出结果:{0: 'x', 1: 'x', 2: 'x', 3: 'x'}


参考链接:https://blog.csdn.net/qq_45261963/article/details/108936881

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/614538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国内免费的ChatGPT镜像网址(ChatGPT国内镜像网站大盘点)

ChatGPT 以其强大的信息整合和对话能力惊艳了全球&#xff0c;在自然语言处理上面表现出了惊人的能力。这么强大的工具我们都想体验一下&#xff0c;那么今天就分享几个ChatGPT国内的镜像网址&#xff0c;大家可以直接使用&#xff01; 1.AiChat 网址入口 多角色多功能可玩性高…

IIC协议——OLED屏幕

1.IIC协议介绍 IIC全称Inter-Integrated Circuit (集成电路总线) 简称I2C 是由PHILIPS公司在80年代开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。IIC属于半双工同步通信方式 特点 简单性和有效性 由于接口直接在组件之上&#xff0c;因此IIC总线占用的空…

超好用万能提示词框架,ChatGPT效率翻三倍!

前几天写了几篇自己的AI实践&#xff1a; 《程序员&#xff0c;如何借力ChatGPT&#xff1f;》 《普通人&#xff0c;如何借力ChatGPT&#xff1f;》 《我认为&#xff0c;最好用的AI工具是它》 《如何借力AI工具做PPT》 很多朋友在后台留言&#xff0c;问我应该如何写高质量的…

云原生Docker网络管理

Docker网络 Docker 网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c; Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c; 同时Docker网桥是每个容器的默认网关。 …

redis整合通过QQ邮箱发送验证码

目录 1.QQ开启服务 2.java中配置 2.1.导入依赖 2.2.yml配置 2.2.1 mail配置 2.2.2 redis配置&#xff08;与mail同级&#xff0c;在spring下一级&#xff09; 2.3.conroller层 2.3.1 在controller类上加上 2.3.2 生成验证码方法 2.3.3发送邮件接口 2.3.4 用户登录接口&…

【事件驱动微服务架构】专家组:事件驱动的大规模架构

赖斯&#xff1a;欢迎来到我们关于架构的专题小组&#xff0c;你们一直想知道轨道。该专题小组称为事件驱动的大规模架构。当您思考事件驱动架构时&#xff0c;您会想到什么&#xff1f;这是规模、性能和灵活性的好处吗&#xff1f;也许你想到了一个你可能经历过的特殊问题。也…

Web Audio API实现简单变声效果

前言 想在网页中实现实时音频变声效果该如何实现呢&#xff0c;之前遇到这种处理音视频的需求&#xff0c;可能会想到需要借助C代码实现。但是现在随着浏览器性能的提升、web API的丰富&#xff0c;通过浏览器原生的API也可以操作音频数据实现很多复杂的效果&#xff0c;为web音…

mitt用100行实现发布-订阅模式还收获了9k的Star

我们先了解什么是发布-订阅模式&#xff0c;发布-订阅模式它是一种对象间一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖它的对象都将得到状态的通知。 发布-订阅模式流程如下&#xff1a; 订阅者将自己想订阅的事件注册到调度中心&#xff1b;…

快手 Flink 的稳定性和功能性扩展

摘要&#xff1a;本文整理自快手技术专家刘建刚&#xff0c;在 Flink Forward Asia 2022 生产实践专场的分享。本篇内容主要分为四个部分&#xff1a; 1. 快手 Flink 平台 2. 稳定性保障和智能运维 3. 复杂场景下的功能扩展 4. 批处理的定制优化 Tips&#xff1a;点击「阅读原文…

maven添加指定仓库和镜像

maven历史版本下载地址&#xff1a;https://archive.apache.org/dist/maven/maven-3/ maven版本和java版本的关系&#xff1a;https://maven.apache.org/docs/history.html 项目中添加仓库 有两种方式 1.在pom.xml中添加&#xff08;优先级高&#xff09; 2.在setting.xml中添…

【已解决】-Mac/Mac mini/Macbook上修改鼠标指针大小

问题&#xff1a; MacOS默认的鼠标指针太小了&#xff0c;平时很容易找不到在哪里。 解决办法&#xff1a; 在 Mac 上&#xff0c;点击苹果菜单 >“系统偏好设置”&#xff0c;然后点按“辅助功能” 。 点击“显示”&#xff0c;然后点击“指针”。 设定以下任一选项…

【SQL】Oracle实现远程访问

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…

CDN和Web加速器之间的区别

在数字时代&#xff0c;网站、社交媒体、电子商务、内容流平台和超个性化网络体验激增。因此&#xff0c;需要实时可靠地为最终用户提供大量生成的内容&#xff0c;而不会出现延迟或崩溃&#xff0c;无论其位置、网络、设备或浏览器如何。为此&#xff0c;使用CDN和web加速器就…

【模电实验】运算放大器构成的温度闭环控制系统的研究

运算放大器构成的温度闭环控制系统的研究 —、实验目的 设计并连接运算放大器构成的温度闭环控制系统&#xff0c;测量并调试该闭环控制系统&#xff0c;初步形成闭环控制的概念。 二、温度闭环控制系统的工作原理 图1所示为温度闭环控制系统框图&#xff0c;各部分工作原理…

vue3中setup语法糖那些事儿

vue3中setup语法糖那些事儿 什么是语法糖&#xff1f;vue3相比于vue2有什么新的语法糖?refreactivewatch生命周期Teleport setup语法糖<script setup>与传统vue3有何不同传统vue3和setup语法糖&#xff0c;两者之间写法如何转换&#xff1f; 什么是语法糖&#xff1f; …

NodeJs性能分析工具

&#xff08;头等人&#xff0c;有本事&#xff0c;没脾气&#xff1b;二等人&#xff0c;有本事&#xff0c;有脾气&#xff1b;末等人&#xff0c;没本事&#xff0c;大脾气。——南怀瑾&#xff09; NodeJs内存分析的必要性 回顾过去&#xff0c;我们排查web应用问题的途径…

EasyRecovery16计算机电脑硬盘格式化数据恢复软件

EasyRecovery16是一款综合性的数据恢复工具&#xff0c;软件具备非常成熟的算法&#xff0c;适用于多种数据丢失情况&#xff0c;可以帮助用户快速恢复不同介质丢失的数据。easyrcovery软件共有三种版本&#xff0c;分别为个人版、专业版、企业版。这三种版本的软件都可以免费使…

市场类型与完全竞争市场

短期完全竞争市场 区分市场类型的几条标准&#xff1a; 生产者的数量商品的同质性&#xff08;差异化程度&#xff09;进出市场的障碍信息是否完全 市场类型&#xff1a; 完全垄断寡头垄断垄断性竞争完全竞争 完全竞争市场的特征&#xff1a; 企业&#xff1a;数目多&…

Python学习41:文本分析(1)——统计文件中的字符

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ open(name[, mode[, bufferi…

MySQL了解之复制(一)

1.1、复制解决的问题 数据复制技术有以下一些特点&#xff1a; (1) 数据分布 (2) 负载平衡(load balancing) (3) 备份 (4) 高可用性(high availability)和容错 1.2、复制如何工作 从高层来看&#xff0c;复制分成三步&#xff1a; (1) master将改变记录到二进制…