Python

Python基础-06字典

2020-05-25  本文已影响0人  Surpassme

6.字典

    字典的主要特性如下所示:

6.1 基本使用

1.添加

    直接给对应的键赋值即可

d={}
d["a"]=123
# 输出结果
{'a': 123}

2.获取

    直接填写对应的键即可,但必须保证键存在

d={'a': 123}
d["a"]
# 输出结果
123

3.更新
    与添加类似,重新赋值的过程便是更新

d={'a': 123}
d["a"]=456
d
# 输出结果
{'a': 456}

4.删除
    使用del,后面填写相应的键即可

d={'a': 123}
del d["a"]
d
# 输出结果
{}

6.2基本方法

    字典中常用的方法为三个:

    示例代码如下所示:

d={
    "beijing":"beijing",
    "shanghai":"shanghai",
    "jiangsu":"nanjing",
    "zhejian":"hangzhou",
    "hubei":"wuhai",
}

print(f"获取字典的键:{d.keys()}")
print(f"获取字典的值:{d.values()}")
print(f"获取字典的键值对:{d.items()}")

输出结果如下所示:

获取字典的键:dict_keys(['beijing', 'shanghai', 'jiangsu', 'zhejian', 'hubei'])
获取字典的值:dict_values(['beijing', 'shanghai', 'nanjing', 'hangzhou', 'wuhai'])
获取字典的键值对:dict_items([('beijing', 'beijing'), ('shanghai', 'shanghai'), ('jiangsu', 'nanjing'), ('zhejian', 'hangzhou'), ('hubei', 'wuhai')])

6.3常用方法

    示例代码如下所示:

a=(1,2,3,4,5)

d={
    "beijing":"beijing",
    "shanghai":"shanghai",
    "jiangsu":"nanjing",
    "zhejian":"hangzhou",
    "hubei":"wuhai",
}

ad={
    "abc":122,
    "def":123
}
print(f"使用get方法获取指定键(存在)的值:{d.get('beijing','Test')}")
print(f"使用get方法获取指定键(不存在)的值:{d.get('surpass','Test')}")
d.setdefault('beijing','beijingTest')
print(f"使用setdefault方法获取指定键(存在)的值:{d}")
d.setdefault('surpass','Test')
print(f"使用setdefault方法获取指定键(不存在)的值:{d}")
d.update(ad)
print(f"使用update在字典添加字典:{d}")
d.pop("abc")
print(f"使用pop删除指定键的值:{d}")
tmp=d.popitem()
print(f"使用pop删除指定键的值:{d} 删除的元素为:{tmp}")
d1=dict.fromkeys(a)
print(f"使用fromkeys创建新的字典,并将可迭代元素的值做为键,其对应的值为初始值:{d1}")
d2=dict.fromkeys(a,100)
print(f"使用fromkeys创建新的字典,并将可迭代元素的值做为键,其对应的值为初始值:{d2}")

输出结果如下所示:

使用get方法获取指定键(存在)的值:beijing
使用get方法获取指定键(不存在)的值:Test
使用setdefault方法获取指定键(存在)的值:{'beijing': 'beijing', 'shanghai': 'shanghai', 'jiangsu': 'nanjing', 'zhejian': 'hangzhou', 'hubei': 'wuhai'}
使用setdefault方法获取指定键(不存在)的值:{'beijing': 'beijing', 'shanghai': 'shanghai', 'jiangsu': 'nanjing', 'zhejian': 'hangzhou', 'hubei': 'wuhai', 'surpass': 'Test'}
使用update在字典添加字典:{'beijing': 'beijing', 'shanghai': 'shanghai', 'jiangsu': 'nanjing', 'zhejian': 'hangzhou', 'hubei': 'wuhai', 'surpass': 'Test', 'abc': 122, 'def': 123}
使用pop删除指定键的值:{'beijing': 'beijing', 'shanghai': 'shanghai', 'jiangsu': 'nanjing', 'zhejian': 'hangzhou', 'hubei': 'wuhai', 'surpass': 'Test', 'def': 123}
使用pop删除指定键的值:{'beijing': 'beijing', 'shanghai': 'shanghai', 'jiangsu': 'nanjing', 'zhejian': 'hangzhou', 'hubei': 'wuhai', 'surpass': 'Test'} 删除的元素为:('def', 123)
使用fromkeys创建新的字典,并将可迭代元素的值做为键,其对应的值为初始值:{1: None, 2: None, 3: None, 4: None, 5: None}
使用fromkeys创建新的字典,并将可迭代元素的值做为键,其对应的值为初始值:{1: 100, 2: 100, 3: 100, 4: 100, 5: 100}

6.4 字典键确定方法

    因为字典的键是不可更改的,那如何判断一个数据类型是否可更改呢?两种方法如下所示:

s="abc"
id(s)
# 输出结果
1536614318320
s+="aa"
id(s)
# 输出结果
1536635062128
import hashlib
hash("123")
# 输出结果
-7084025808549728804
hash(["123"])
# 输出结果
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unhashable type: 'list'

    以上示例表明字符是可以被hash的,可以做为字典的键,但列表却不行。

6.5 优缺点

上一篇下一篇

猜你喜欢

热点阅读