热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3字典(dict)基础

1、定义及初始化1.1、直接初始化info{stu1101:jack,stu1102:tom,stu1103:mary,}print(info)打印输出

1、定义及初始化


1.1、直接初始化

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info)

  打印输出结果:

{'stu1101': 'jack', 'stu1102': 'tom', 'stu1103': 'mary'}

1.2、先定义后赋值

records ={}
records[
"stu1101"] = 90
records[
"stu1102"] = 80
records[
"stu1103"] = 70
print(records)

  打印输出结果:

{'stu1101': 90, 'stu1102': 80, 'stu1103': 70}

2、方法


2.1、setdefault()

  设置默认值。


2.2.1、对新的key设置默认值

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
info.setdefault(
"stu1100", "robin")
print(info)

  打印输出结果:

{'stu1101': 'jack', 'stu1102': 'tom', 'stu1103': 'mary', 'stu1100': 'robin'}

2.2.2、对已存在的key设置默认值,原来的值不改变

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
info.setdefault(
"stu1101", "robin")
print(info)

  打印输出结果:

{'stu1101': 'jack', 'stu1102': 'tom', 'stu1103': 'mary'}

2.3、keys()与values()


2.3.1、keys()

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info.keys())
print(type(info.keys()))

  打印输出结果:

dict_keys(['stu1101', 'stu1102', 'stu1103'])
<class 'dict_keys'>

2.3.2、读取keys()的元素

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
info_keys_list
= list(info.keys())
print(info_keys_list[0])
print(info_keys_list[1])
print(info_keys_list[2])

  打印输出结果:

stu1101
stu1102
stu1103

 

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
for key in info.keys():
print(key)

  打印输出结果:

stu1101
stu1102
stu1103

2.3.3、values()

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info.values())
print(type(info.values()))

  打印输出结果:

dict_values(['jack', 'tom', 'mary'])
<class 'dict_values'>

2.4、items()

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info.items())
for k,v in info.items():
print("%s: %s"%(k,v))

  打印输出结果:

dict_items([('stu1101', 'jack'), ('stu1102', 'tom'), ('stu1103', 'mary')])
stu1101: jack
stu1102: tom
stu1103: mary

2.5、get()

  获取key对应的键值。

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info.get('stu1103'))
print(info.get('stu1111',None))

  打印输出结果:

mary
None

2.6、字典中是否有某个key,info默认取keys()

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print("stu2200" in info)
print("stu1101" in info)
# 等同于上面的写法
print("stu1101" in info.keys())

  打印输出结果:

False
True
True

2.7、字典中是否有某个value

# info默认去keys,因此这用用法是错误的
print("tom" in info)
# 直接去info的values(),再判断"tom"是否在其中
print("tom" in info.values())

  打印输出结果:

False
True

2.8、update()

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
b
= {
"stu1101": "alex",
"stu1104": "white",
"stu1105": "black",
}
info.update(b)
print(info)

  打印输出结果:

{'stu1101': 'alex', 'stu1102': 'tom', 'stu1103': 'mary', 'stu1104': 'white', 'stu1105': 'black'}

2.9、del


2.9.1、删除字典中的键

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
del info["stu1101"]
print(info)

  打印输出结果:

{'stu1102': 'tom', 'stu1103': 'mary'}

2.9.2、删除字典

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
del info
print(info)

  打印输出结果:

name 'info' is not defined

2.10、pop()

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info.pop("stu1101"))

  打印输出结果:

jack

2.11、popitem()

   随机返回并删除字典中的一对键和值(一般删除末尾对)。

info = {
"stu1101": "jack",
"stu1102": "tom",
"stu1103": "mary",
}
print(info.popitem())
print(info)

  打印输出结果:

('stu1103', 'mary')
{
'stu1101': 'jack', 'stu1102': 'tom'}

2.12、fromkeys()

  创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。

key_list = ["name","age","height"]
dic
= dict.fromkeys(key_list,None)
print(dic)

  打印输出结果:

'name': None, 'age': None, 'height': None}

2.13、sorted()

  所有可迭代的对象进行排序操作  

  sort 与 sorted 区别:

    sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

    list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

a = {6:2,8:0,1:4,-5:6,99:11,4:22}
print( sorted(a.items()) )
print( sorted(a.items(),key=lambda x:x[1]) )
print( sorted(a.items(),key=lambda x:x[0]) )

  打印输出结果:

[(-5, 6), (1, 4), (4, 22), (6, 2), (8, 0), (99, 11)]
[(
8, 0), (6, 2), (1, 4), (-5, 6), (99, 11), (4, 22)]
[(
-5, 6), (1, 4), (4, 22), (6, 2), (8, 0), (99, 11)]

2.14、zip()

  用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

a = [1,2,3,4,5,6]
b
= ['a','b','c','d']
for i in zip(a,b):
print(type(i))
print(i)
print("*"*50)
print(list(zip(a,b)))

  打印输出结果:

<class 'tuple'>
(
1, 'a')
<class 'tuple'>
(
2, 'b')
<class 'tuple'>
(
3, 'c')
<class 'tuple'>
(
4, 'd')
**************************************************
[(
1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

 



推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • python教程分享POC漏洞批量验证程序Python脚本编写
    编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程 ... [详细]
  • python教程分享python人物视频背景替换实现虚拟空间穿梭
    引言近期网上这位卖蜂蜜的小伙鬼畜挺火的,大家质疑背景造假,这里我就带着大家实现“背景造假”(ps:原视频小伙是在真实场景拍摄的)准备工作在实现该功能之前,我 ... [详细]
  • 正常情况下,我们完成一件事情的过程中,可能会存在多种条件限制如:用户去ATM机取钱->输入取款密码->输入正确,取钱成功|输入错误,退卡。这样的情况下,需要根据不同的条件,执行不同的逻 ... [详细]
author-avatar
手机用户2502854361
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有