python 创建和使用字典

1、创建字典

1)定义

d = {
    
    'name': 'fengqi', 'age': '22'}

2)函数dict

items = [('name','fengqi'),('age','22')]
d = dict(items)
print(d)
# {'name': 'fengqi', 'age': '22'}

还可以使用关键字实参来调用

d = dict(name='fengqi',age='22')
print(d)
# {'name': 'fengqi', 'age': '22'}

2、基本的字典操作

1)len(d) 返回项数
2)d[k] 返回键k对应的值
3)d[k] = v 将值v关联到键k
4)del d[k] 删除键为k的项
5)k in d 检查字典d是否包含键为k的项

3、字典方法

1)clear()
就地清除字典的元素
2)copy()
返回一个新字典,其包含的键-值对与原来的字典相同(这个方法是浅复制,因为值本身是原件,而非副本)

注意体会下面两种操作的区别

d = {
    
    'name': 'fengqi', 'age': ['22', '23']}
d1 = d.copy()
d1['name'] = 'xiaoliang'
print(d)
# {'name': 'fengqi', 'age': ['22', '23']}
d = {
    
    'name': 'fengqi', 'age': ['22', '23']}
d1 = d.copy()
d1['age'].remove('23')
print(d)
# {'name': 'fengqi', 'age': ['22']}

当替换副本中的值时,原件不受影响。然而,如果修改副本中的值(就地修改而不是替换),原件也将发生变化,因为原件指向的也是被修改的值
为此,可使用模块copy中的函数deepcopy()

d = {
    
    'name': 'fengqi', 'age': ['22', '23']}
d1 = deepcopy(d)
d1['age'].remove('23')
print("d:",d)
print("d1:",d1)
# d: {'name': 'fengqi', 'age': ['22', '23']}
# d1: {'name': 'fengqi', 'age': ['22']}

3)fromkeys()
由键创建空值字典

dict.fromkeys(['name','age'])
# {'name': None, 'age': None}

4)get()
获取指定键对应的值,如果不存在则返回None

d = {
    
    'name': 'fengqi', 'age': ['22', '23']}
print(d.get('name'))
print(d.get('girlfriend'))
# fengqi
# None

5)items()
返回一个包含所有字典项的列表,其中每个元素都为(key,value)的形式

d = {
    
    'name': 'fengqi', 'age': ['22', '23']}
print(d.items())
# dict_items([('name', 'fengqi'), ('age', ['22', '23'])])

返回值属于一种名为字典视图的特殊类型

扫描二维码关注公众号,回复: 11938773 查看本文章

可以将字典项复制到列表中

d = {
    
    'name': 'fengqi', 'age': ['22', '23']}
print(list(d.items()))
# [('name', 'fengqi'), ('age', ['22', '23'])]

6)keys()
返回键的字典视图

7)pop()
获取指定键相关联的值,并将该键值对从字典中删除

9)popitem()
随机弹出返回并删除一个键值对

10)setdefault()
字典不包含指定的键时,在字典中添加指定的键值对,并相应地更新字典
如果指定的键存在,就返回其值,并保持字典不变

11)values()
返回一个字典中的值组成的字典视图

猜你喜欢

转载自blog.csdn.net/Winds_Up/article/details/109047721