字典

字典

创建字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中,字典中每个键值对是没有顺序的.

键:必须唯一,必须是不可变类型
值:可以使用任何数据类型,包括布尔值

不可变类型:整形/字符串/元组
可变类型:列表/字典

例如:
dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}

创建方式一
使用大括号创建,简单易操作
a = { }

创建方式二
使用dict()创建
a = dict(键值对)

a = dict((("name","Tony"), ("age",15), ))
print(a)

>>> {'name': 'Tony', 'age': 15}

创建方式三
使用fromkeys()
实例:

a = dict.fromkeys(["1", "2", "3"], "一个值")
print(a)

>>> {'1': '一个值', '2': '一个值', '3': '一个值'}
    #他将前面列表内所有的元素作为键,列表外面的作为统一的值

键必须唯一
例如:

dictionary = {"name": "Tony",  "name": "123", "age": 18, }
>>>{'name': '123', 'age': 18}

当字典里面有重复的键值对时,后面的会把前面的给覆盖掉

访问,查看字典里的值

通过键,查看单个值

语法结构:字典名[键名]

例如:

dictionary = {"name": "Tony", "age": 18,  "hobby": ["run", "soccer", ], }
print(dictionary["name"])   #可以取出此值
>>> Tony
查看字典内所有的键

使用函数keys()
语法结构:字典名.keys()
例如:

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
print(dictionary.keys())

>>> dict_keys(['name', 'age', 'hobby'])  #返回值不是列表
查看字典内所有的值

使用函数values()
语法结构:字典名.values()
例如:

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
print(dictionary.values())

>>> dict_values(['Tony', 18, ['run', 'soccer']])
查看字典内所有的键值对

使用函数items()
语法结构:字典名.items()
例如:

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
print(dictionary.items())

>>> dict_items([('name', 'Tony'), ('age', 18), ('hobby', ['run', 'soccer'])])

添加,添加键值对

直接赋值法

语法结构:字典名["键"] = "值"
例如:

a = {"num1": 1, "num2": 2, }
a["num3"] = 3   #把里面的键改成字典里面有的键,就变成了修改.
print(a)
>>> {'num1': 1, 'num2': 2, 'num3': 3}
函数setdefault() 智能选择是否添加键值

作用:若字典里面有这个键,就不赋值,若字典里面没有这个键,就把这个键值对添加到字典里民
语法结构:字典名.setdefault("键值对") #此函数有返回值

例如:

dictionary = {"name": "Tony", "age": 18, }  #创建一个字典
ret1 = dictionary.setdefault("age", 20) #此键在列表里面,不赋值
ret2 = dictionary.setdefault("hobby", "run") #此键不在列表内,添加到列表内,并返回对应值
print(ret1)
print(ret2)
print(dictionary)
>>> 18
run
{'name': 'Tony', 'age': 18, 'hobby': 'run'}
两个字典,追加操作

函数update()
作用:把一个字典全部追加到另一个字典里面去.此字典不变化,当两个字典里面有相同值时,会覆盖掉原有的
例如:

dic1 = {"1": "11", "2": "22", }
dic2 = {"3": "33", "4": "44", "2": "新的值"}   #字典里面有一个重复的值
dic1.update(dic2)
print(dic1)
print(dic2)

>>>{'1': '11', '2': '新的值', '3': '33', '4': '44'}   #可以发现相同的值被覆盖掉了
   {'3': '33', '4': '44', '2': '新的值'}    #此列表不发生任何变化

删除键值对操作

使用键修改

语法结构:字典名["键"] = "新值"
例如:

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
dictionary["name"] = "张三"
print(dictionary)

>>>  {'name': '张三', 'age': 18, 'hobby': ['run', 'soccer']}
删除键值对,通过键

使用del
语法结构:del 字典名["键"] #只需要打出键

使用pop()
语法结构:字典名.pop("键") #可以返回值,键值对的值.以元组的形式

随机删除键值对 -_-|||

使用popitem
语法结构:字典名.popitem()

清空字典

使用函数clear()
作用:清空字典 ,保留空字典
语法结构:字典名.clear()

字典排序

用键排序

函数sorted()
作用:把键根据编码表排序
语法结构:sorted(字典名)

遍历字典

遍历键

使用for循环遍历字典 默认遍历键 不显示值
例如:

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
for i in dictionary:
    print(i)
  
>>> name
age
hobby
遍历键值对

例如:
方法一 效率高:

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
for i in dictionary:
    print(i, dictionary[i])

>>>name Tony
age 18
hobby ['run', 'soccer']

方法二

dictionary = {"name": "Tony", "age": 18, "hobby": ["run", "soccer", ]}
for i, v in dictionary.items():  #也可以使用一个变量接收,一个变量遍历出来是元组
    print(i, v)

>>>name Tony
age 18
hobby ['run', 'soccer']
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值