目录
创建字典
字典内元素是键值对的形式,可进行增加、删除、修改。
用{}创建字典,格式:{key:value};
有时候创建会出错,检查是否在每一个元素最后都加上了,(列表、元组也可以加)
>>> empty_dict = {}
>>> empty_dict
{}
>>> dict1 = {"day":"one,two",
... "222":"33dg",
... "key2":"terr",
... "key2":"1,2,3,4",
... }
>>> dict1
{'day': 'one,two', '222': '33dg', 'key2': '1,2,3,4'}
dict():
将包含双值子序列的其他类型(列表、元组)转换为字典
>>> list1 = [['a','b'],['c','d']]
>>> dict(list1)
{'a': 'b', 'c': 'd'}
>>> list2 = [("a",1),("b",2)]
>>> dict(list2)
{'a': 1, 'b': 2}
>>> tuple1 = (["c",3],["d",4])
>>> dict(tuple1)
{'c': 3, 'd': 4}
>>> tuple2 = (("a",1),("b",2))
>>> dict(tuple2)
{'a': 1, 'b': 2}
>>> list3 = ("ab","12")
>>> dict(list3)
{'a': 'b', '1': '2'}
>>> tuple3 = ["ab","34"]
>>> dict(tuple3)
{'a': 'b', '3': '4'}
使用[key]添加、修改元素
指定该元素的键并赋予相应的值,如果键存在,则对应值被覆盖;如果键不存在,则新加入键和值;
>>> dict2 = {"aaaa":"bbb",
... "cccc":"ddddd",
... "eeee":"fff",
... "gggg":"hhhhh"
... }
>>> dict2
{'aaaa': 'bbb', 'cccc': 'ddddd', 'eeee': 'fff', 'gggg': 'hhhhh'}
>>> dict2["iiii"] = "jjjjj"
>>> dict2
{'aaaa': 'bbb', 'cccc': 'ddddd', 'eeee': 'fff', 'gggg': 'hhhhh', 'iiii': 'jjjjj'}
>>> dict2["aaaa"] = "changebbb"
>>> dict2
{'aaaa': 'changebbb', 'cccc': 'ddddd', 'eeee': 'fff', 'gggg': 'hhhhh', 'iiii': 'jjjjj'}
update()
合并字典,
待添加的字典和待扩充的字典中有相同的键,新的字典中对应键的值会取代原来的值
>>> dict1 = {"a":"aaaaa",
... "b":"bbbbb",
... "c":"cccccc"
... }
>>> dict1
{'a': 'aaaaa', 'b': 'bbbbb', 'c': 'cccccc'}
>>> dict2 = {"c":"33333","d":"ddddd"}
>>> dict1.update(dict2)
>>> dict1
{'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3 = {"e":"eeee"}
>>> dict3.update(dict1)
>>> dict3
{'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
del
删除具有指定键的元素
>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> del dict3["a"]
>>> dict3
{'e': 'eeee', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
clear()
删除字典所有元素
>>> dict3
{'e': 'eeee', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3.clear()
>>> dict3
{}
in
判断某个键是否在字典中
>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> "a" in dict3
True
>>> "aaaaa" in dict3
False
使用[key]获取元素
>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3["a"]
'aaaaa'
get()
获取字典中某个键对应的值,如果键不存在,则会返回None(什么都不显示,不是空)
语法:字典名.get(键,键不存在时的返回值(可不填))
dict.get(key, default=None)
>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3.get("b")
'bbbbb'
>>> dict3.get("f")
>>>
>>> dict3.get("f","ffff")
'ffff'
>>> dict3.get("a","ffff")
'aaaaa'
keys()
获取所有键,
返回的是dict_keys(),是键的迭代形式,需要手动转换成列表
>>> dict3.keys()
dict_keys(['e', 'a', 'b', 'c', 'd'])
>>> list(dict3.keys())
['e', 'a', 'b', 'c', 'd']
values()
获取所有值
>>> dict3.values()
dict_values(['eeee', 'aaaaa', 'bbbbb', '33333', 'ddddd'])
>>> list(dict3.values())
['eeee', 'aaaaa', 'bbbbb', '33333', 'ddddd']
items()
获取所有键值对
>>> dict3.items()
dict_items([('e', 'eeee'), ('a', 'aaaaa'), ('b', 'bbbbb'), ('c', '33333'), ('d', 'ddddd')])
>>> list(dict3.items())
[('e', 'eeee'), ('a', 'aaaaa'), ('b', 'bbbbb'), ('c', '33333'), ('d', 'ddddd')]
使用 = 赋值,copy() 复制
对字典内容进行修改会反映到所有与之相关联的变量名上
>>> dict1
{'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict4 = dict1
>>> dict4
{'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict1["a"] = "11111"
>>> dict1
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict4
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict5 = dict1.copy()
>>> dict5
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict1["b"] = "22222"
>>> dict5
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict4
{'a': '11111', 'b': '22222', 'c': '33333', 'd': 'ddddd'}
>>> dict4["d"] = "44444"
>>> dict1
{'a': '11111', 'b': '22222', 'c': '33333', 'd': '44444'}