*2.定义:{}内用逗号分隔开多个元素,每个元素都是key:value的形式,value能够是任意数据类型,而key一般应该是字符串类型,可是key必须为不可变类型。python
dic = {'a': 1, 'b': 2} # dic = dict({'a':1,'b':2}) print(f"dic: {dic}")
dic: {'a': 1, 'b': 2}
算法
dic = dict(a=1, b=2, c=3) print(f"dic: {dic}")
dic: {'a': 1, 'b': 2, 'c': 3}
优化
dic = {1: 'a', 0: 'b'} print(f"dic[0]: {dic[0]}") # 没法区分dic是列表,仍是字典,而且key再也不具备描述信息
dic[0]: b
code
dic = {[1,2]: 'a', 0: 'b'} # 报错
1.按key存取值:可存可取
2.长度len
3.成员运算in和not in
4.删除del
5.键keys()、值values()、键值对items()
6.循环
1.按key存取值:可存可取字符串
# dic之按key存取值 dic = {'a': 1, 'b': 2} print(f"first dic['a']: {dic['a']}") dic['a'] = 3 print(f"second dic['a']: {dic['a']}")
first dic['a']: 1 second dic['a']: 3
2.长度lenget
# dic之长度len dic = {'a': 1, 'b': 2} print(f"len(dic): {len(dic)}")
len(dic): 2
3.成员运算in和not init
# dic之成员运算in和not in dic = {'a': 1, 'b': 2} print(f"'a' in dic: {'a' in dic}") print(f"1 in dic: {1 in dic}")
'a' in dic: True 1 in dic: False
4.删除class
# dic之删除del dic = {'a': 1, 'b': 2} del dic['a'] print(f"dic.get('a'): {dic.get('a')}")
dic.get('a'): None
date
# dic之删除pop() dic = {'a': 1, 'b': 2} dic.pop('a') # 指定元素删除 print(f"dic.pop('b'): {dic.pop('b')}") print(f"dic.get('a'): {dic.get('a')}")
dic.pop('b'): 2 dic.get('a'): None
循环
# dic之删除popitem() dic = {'a': 1, 'b': 2} print(f"dic.popitem(): {dic.popitem()}") # 随机删除一个元素,没法指定
dic.popitem(): ('b', 2)
5.键keys()、值values()、键值对items()
# dic之键keys()、值values()、键值对items(),python2中取出的是列表(鸡蛋);python3中取出的是元组(鸡) dic = {'a': 1, 'b': 2} print(f"dic.keys(): {dic.keys()}") print(f"dic.values(): {dic.values()}") print(f"dic.items(): {dic.items()}")
dic.keys(): dict_keys(['a', 'b']) dic.values(): dict_values([1, 2]) dic.items(): dict_items([('a', 1), ('b', 2)])
6.循环
# dic之循环 # dic是无序的,可是python3采用了底层优化算法,因此看起来是有序的,可是python2中的字典是无序 dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4} for k, v in dic.items(): # items能够换成keys()、values() print(k, v)
a 1 b 2 c 3 d 4
1.get
update
fromkeys
setdefault
1.get()
# dic之get() dic = {'a': 1, 'b': 2} print(f"dic.get('a'): {dic.get('a')}") print(f"dic.get('c'): {dic.get('c')}")
dic.get('a'): 1 dic.get('c'): None
2.update()
# dic之update() dic1 = {'a': 1, 'b': 2} dic2 = {'c': 3} dic1.update(dic2) print(f"dic1: {dic1}")
dic1: {'a': 1, 'b': 2, 'c': 3}
3.fromkeys()
# dic之fromkeys() dic = dict.fromkeys(['name', 'age', 'sex'], None) print(f"dic: {dic}")
dic: {'name': None, 'age': None, 'sex': None}
4.setdefault()
# dic之setdefault(),有指定key不会改变值;无指定key则改变值 dic = {'a': 1, 'b': 2} print(f"dic.setdefault('a'): {dic.setdefault('a',3)}") print(f"dic: {dic}") print(f"dic.setdefault('c'): {dic.setdefault('c',3)}") print(f"dic: {dic}")
dic.setdefault('a'): 1 dic: {'a': 1, 'b': 2} dic.setdefault('c'): 3 dic: {'a': 1, 'b': 2, 'c': 3}
多个值,值能够是多个类型,key必须是不可变类型,一般应该是不可变类型中的字符串类型