无序可变序列,不是通过索引来访问的。而是通过键来访问。
字典是无序的,各项是从左到右随机排序的(在字典中的位置没有特定顺序)
字典中的键必须唯一不允许同一个键出现两次,如果出现两次则后一个值会被保存。
字典中的键是不可变的(字典中的键可以使用数字,字符串,元组,但是不可以用列表)
声明方式:
dic={'key':'value','key2':'value2','key3':'value3'}
创建空的字典:dic={ } 或 dic =dict( )
通过映射函数创建字典:
dic=dict(zip(list1,list2))
zip()函数用于将多个列表或者元组对应位置的元素组合为元组,并返回包含这些内容的zip()对象。
k=['a','b','c','d']
v=[1,2,3,4]
d=dict(zip(k,v))
如果获取元组则要将zip()对象使用tuple()函数转换。
获取列表,则用list()函数。
list=[123,"abc",'哈哈']
a=dict.fromkeys(list)#创建值为空的字典
d=dict(name="123",age=37)
a=dict.fromkeys(['name','age','sex'])
可以用一个元组作为键而不能用列表作为键
通过del命令 删除字典
字典对象的 .clear()将字典清空
字典对象的pop() 删除并返回指定键的元素
字典对象的popitem()方法删除并返回字典的一个元素。
访问字典元素时通过下标的方式实现。(这里的下标不是索引而是键)
如果指定的键不存在,则会抛出异常。
推荐使用字典对象的 .get(key) 方式获取指定键的值
>>> #dict对象的fromkeys()方法创建值为空的字典语法:
>>> a=[12,"abc","哈哈"]
>>> c=dict.fromkeys(a)
>>> c
{12: None, 'abc': None, '哈哈': None}
>>> c
{12: None, 'abc': None, '哈哈': None}
>>> c.items()
dict_items([(12, None), ('abc', None), ('哈哈', None)])
>>> for i in c.items():
print(i)
(12, None)
('abc', None)
('哈哈', None)
>>> c.keys()
dict_keys([12, 'abc', '哈哈'])
>>> c.values()
dict_values([None, None, None])
>>>
以指定的键为下标为字典元素赋值时,如果键存在了,则表示修改键对应的值。如果键不存在,表示增加一个新的键值对。
使用字典对象的update(),可以将另一个字典的键值对一次性全添加到当前字典对象,若两个字典存在相同对键,则以另一个字典中的值为准为当前字典进行更新。
del命令可以删除整个字典,也可以删除字典中的指定元素。
字典对象的pop() 弹出并删除指定键对应的元素
字典对象的popitem() 弹出一个元素(键值对)
字典对象的clear() 清空对象中的所有元素。
字典的访问方法:
ji
键相当于下标。访问时不存在会抛出异常。
字典对象的get()方法:用来返回指定键的对应值。
也可以允许指定键不存在时,返回特定的值。
list.get('age')
list.get('address','不存在')
setdefault() 返回指定键对应的值。若字典中不存在该键,则,就增加一个新元素并设置该键的对应值