python基本数据类型之字典(一)(day6)
dict的基本功能:
1、字典结构:以[]为语法,包括键值对(键:值)且以(,)逗号分隔。
info = { # k1 k2 k3 k4为键
"k1": 18, # :后面分别为值 逗号为分隔符
"k2": True, # 数字,布尔值也可以作为键
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
2、字典元素
1.字典的值可以是任何值,也可多重嵌套。
2.字典的键不可以是列表和字典。其他都可以
(当True为键时,如果与字典内有1为键,两者冲突只存一方)
3.字典元素是无序的。
ps:python内部默认存储True = 1,False = 0
3、字典可通过键(key)索引获取,相对应的值。列表索引通过位置索引,两者方式不同。
info = {
"k1": 18,
"k2": True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
v = info['k1']
print(v)
>>>18
4、字典是支持del 删除的
info = {
"k1": 18,
"k2": True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
del info['k1']
print(info)
>>> {'k4': (11, 22, 33, 44), 'k3': [11, [], (), 22, 33, {'kk1': 'vv1', 'kk3': (11, 22), 'kk2': 'vv2'}], 'k2': True}
5、支持for循环,但一般默认循环得到键,也可默认循环得到值或者键值
info = {
"k1": 18,
"k2": True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
for item in info:
print(item)
>>>k4
>>>k2 info是字典类型
>>>k1 默认for循环只有key》》》for item in info.key()
>>>k3 但是输出结果键每次排序都不同,因为字典是无序的
用for循环获取值》》》for item in info.values():……
用for循环获取键值》》》for k,y in info.item()……
字典重点方法:
get: 通过键获取值,与索引相似但get查找时如果不存在键,不会报错,输出设置的参数。
索引则直接报错。
dic = {1:11,2:22,3:33}
a = dic.get(1,None)
print(a)
>>>11
update:如果原本有键值对,则用参数值对替换原值;若不存在则添加键值对。
dic = {1:11,2:22,3:33}
dic.update({1:110,4:44})
#dic.update(1=110,4=44)此方式老版使用,目前不适用
print(a)
>>>{1:110,2:22,3:33,4:44}
keys: 以列表返回一个字典所有的键(循环用)
a = {1:11,2:22,3:33}
b = a.keys()
print(type(b),"\n",b)
>>><class 'dict_keys'>
>>>dict_keys([1, 2, 3])
values: 以列表返回字典中的所有值(循环用)
a = {1:11,2:22,3:33}
b = a.values()
print(type(b),"\n",b)
>>><class 'dict_values'>
>>> dict_values([11, 22, 33])
items: 以列表返回可遍历的(键, 值) 元组数组
a = {1:11,2:22,3:33}
b = a.items()
print(type(b),"\n",b)
>>><class 'dict_items'>
>>>dict_items([(1, 11), (2, 22), (3, 33)])