python之字典总结

字典(dict) 对于字典的学习,我整理了网上的一些资料,希望可以帮助到各位!!! 大家清楚知道,假设我们要保存一个人的信息,包括姓名、年龄、体重、单位地址、家庭住址、本人手机号、紧急联系人手机号等信息,你会发现我们之前学过的列表、元组和集合都不是最理想的选择。
集合肯定是最不合适的,因为集合有去重特性,如果一个人的年龄和体重相同,那么集合中就会少一项信息;同理,如果这个人的家庭住址和单位地址是相同的,那么集合中又会少一项信息。另一方面,虽然列表和元组可以把一个人的所有信息都保存下来,但是当你想要获取这个人的手机号时,你得先知道他的手机号是列表或元组中的第6个还是第7个元素;当你想获取一个人的家庭住址时,你还得知道家庭住址是列表或元组中的第几项。总之,在遇到上述的场景时,列表、元组、字典都不是最合适的选择,我们还需字典(dictionary)类型,这种数据类型最适合把相关联的信息组装到一起,并且可以帮助我们解决问题。

Python程序中的字典跟现实生活中的字典很像,它以键值对(键和值的组合)的方式把数据组织到一起,我们可以通过键找到与之对应的值并进行操作。就像《新华字典》中,每个字(键)都有与它对应的解释(值)一样,每个字和它的解释合在一起就是字典中的一个条目,而字典中通常包含了很多个这样的条目。

概念

列表和元组的使用缺点:当存储的数据要动态添加、删除的时候,我们一般使用列表,但是列表有时会遇到一些麻烦 解决方案:既能存储多个数据,还能在访问元素的很方便的定位到需要的元素,采用字典 语法: {键1: 值1, 键2: 值2, 键3: 值3, ..., 键n: 值n} 说明:键值对: key-value
  • 字典和列表类似,都可以用来存储多个数据
  • 在列表中查找某个元素时,是根据下标进行的;字典中找某个元素时,是根据'名字'(就是
  • 冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
  • 字典中的每个元素都由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值
  • 键可以使用数字、布尔值、元组,字符串等不可变数据类型,但是一般习惯使用字符串,切记不能使用列表等可变数据类型
  • 每个字典里的key都是唯一的,如果出现了多个相同的key,后面的value会覆盖之前的value
使用场景:
  • 列表更适合保存相似数据,比如多个商品、多个姓名、多个时间
  • 字典更适合保存不同数据,比如一个商品的不同信息、一个人的不同信息

定义字典

# 1.定义空字典{}
dict1 = {}
print(type(dict1))  # 

# 2.定义非空字典
# 第一种定义字典的方式
dict2 = {"name": "小王子", "age": 21, "love": "男", "sex": "**"}  # 最常用
print(dict2)  # {'name': '小王子', 'age': 21, 'love': '男', 'sex': '**'}
print(type(dict2))  # 
print(dict2["name"], dict2["love"])  # 访问字典:小王子 男

# 第二种定义字典的方式dict(key=value,key1=value1,...)key表示键value表示值

dict3 = dict(num1="123", num2="987")
print(dict3)  # {'num1': '123', 'num2': '987'}

# 第三种定义字典的方式
# dict(zip([key1,key2,key3....],[value1,value2,value3......]))#注意:key和value的数量不一致时,以数量少的为基准
dict4 = dict(zip(['n1', 'n2', 'n3'], [12, 34, 56]))
dict5 = dict(zip(['n1', 'n2', 'n3'], [12, 34, 56, 45, 67, 89]))
print(dict4)  # {'n1': 12, 'n2': 34, 'n3': 56}
print(dict5)  # {'n1': 12, 'n2': 34, 'n3': 56}

# 第四种方式:
dict6 = dict([("a", 10), ("b", "98"), ("c", 67), ("d", 34)])
print(dict6)  # {'a': 10, 'b': '98', 'c': 67, 'd': 34}

?字典的操作

# 1.访问字典中的元素

# 第一种方式:直接通过下标访问
dict1 = {"name": "医生", "author": "原神", "person": "第五人格"}
print(dict1['author'])
# print(dict1['money'])#访问字典中不存在的key时,直接报错KeyError: 'money'

# 第二种方式:通过get()方法获取
print(dict1.get('name'))
print(dict1.get('money'))  # None 访问字典中不存在的key时,返回None
print(dict1.get('money', 10000000))  # 10000000 访问字典中不存在的key时,若传递了第二个参数,第二个参数会设置为默认值

# 2.获取字典的长度len()
print(len(dict1))  # 3

# 3.获取字典中所有的key
print(dict1.keys())  # dict_keys(['name','author','person'])

# 4.获取字典中所有的value
print(dict1.values())  # dict_values(['医生', '原神', '第五人格'])

# 5.获取字典中的所有的key和value items()

print(dict1.items())
# dict_items([('name', '医生'), ('author', '原神'), ('person', '第五人格')])

# 6.遍历字典

# 第一种方式:for in
for i in dict1:  # 遍历字典中所有的key
    print(i)

# 第二种方式:enumrate()遍历字典中所有的key
for k, v in enumerate(dict1):
    print(k, '----', v)

# 第三种方式:items遍历字典中所有的key和value
for k, v in dict1.items():
    print(k, '----', v)

# 第四种方式:遍历字典中所有的值
for v in dict1.values():
    print(v)

# 合并字典update()
dict2 = {"name": "py小王子", "money": "1000000", "age": 21}
dict3 = {"sex": "猛男"}
dict2.update(dict3)
print(dict2)  # {'name': 'py小王子', 'money': '1000000', 'age': 21, 'sex': '猛男'}

# 增
dict4 = {"name": "iPhone16", "money": 20000, "color": "土豪金"}
dict4["size"] = 6.5
print(dict4)  # {'name': 'iPhone16', 'money': 20000, 'color': '土豪金', 'size': 6.5}

# 改
dict4['color'] = "粉"
print(dict4)  # {'name': 'iPhone16', 'money': 20000, 'color': '粉', 'size': 6.5}

# 删
# 第一种:pop()删除指定的元素
dict4.pop("color")
print(dict4)  # {'name': 'iPhone16', 'money': 20000, 'size': 6.5}

# 第二种:popitem()随机返回并删除字典中的最后一对key和value
dict4.popitem()
print(dict4)  # {'name': 'iPhone16', 'money': 20000}

# clear()清空字典
dict4.clear()
print(dict4)  # {}

字典的应用?

例子1:输入一段话,统计每个英文字母出现的次数。

sentence = input('请输入一段话: ')
counter = {}
for ch in sentence:
    if 'A' <= ch <= 'Z' or 'a' <= ch <= 'z':
        counter[ch] = counter.get(ch, 0) + 1
for key, value in counter.items():
    print(f'字母{key}出现了{value}次.')

python之字典总结

例子2:在一个字典中保存了小朋友的零花钱,找出零花钱大于60元的小朋友,并创建一个新的字典。

money = {
    '小米': 191.88,
    '小名': 1186.96,
    '小红': 149.24,
    '小张': 48.44,
    '小黄': 166.89,
    '小笑': 208.09,
    '小七': 21.29
}
money2 = {key: value for key, value in money.items() if value > 60}
print(money2)

python之字典总结

总结

Python程序中的字典跟现实生活中字典非常像,允许我们以键值对的形式保存数据,再通过键索引对应的值

大家通过本章学习需要知道,字典中的键必须是不可变类型,字典中的值可以是任意类型

恭喜你学会了字典,快去试试吧!!!?

上一篇:seo和python_python和seo优化关系
下一篇:Vue3降为Vue2