一、关于python中的字典

1.什么是字典?

字典用于保存具有映射关系的数据,字典相当于保存了两组数据,其中一组数据是关键数据,被称为key,另一组数据可以通过key来访问,被称为value,key和value一一对应,key不允许重复

2.创建字典

(1)花括号法:花括号应包含多组key-value对,key与value之间用英文冒号隔开;多组key-value对之间用英文逗号隔开,如

    score={'语文':88,'数学':98,'英语':79}

(2)dict构造器:可以传入多个列表或元组参数作为key-value对;也可为dict指定关键字参数创建字典,此时字典的key不允许使用表达式,字典的key必须是不可变的,因此列表不能作为dict的key;

如score=dict([('语文',88),('数学',98),('英语',79)])  //要求每个元素只能有2个参数,第一个是key,第二个是value

如dict1=dict(语文=88,数学=98,英语=79)  //用关键字参数来创建dict,此时不允许使用表达式

3.通过key访问value

在方括号中放的是key,即可通过key访问value

对不存在的key赋值,就是添加一个key-value对,对已有的key赋值,就是替换key-value对

字典和列表都是可变的,列表中的元素可以增删改,字典中的key-value对也可增删改

使用in、not in可以判断dict是否包含指定key

4.字典和列表

(1)字典相当于索引是任意不可变类型的列表,而列表相当于key只能是整数的字典。如果程序中要使用的字典的key都是整数类型,则可以考虑是不是能换成列表

(2)列表的索引总是从0开始、连续增大;但字典的索引即使是整数类型,也不需要从0开始,也不需要连续。因此列表不允许对不存在的索引赋值;但字典允许对不存在的key赋值

5.字典的常用方法

调用dir(dict)可查看字典的所有方法

clear用于清空字典中所有key-value对

get()方法通过key来获取value

update()方法可以使用一个字典所包含的key-value对来更新已有的字典

    score={'语文':88,'数学':98,'英语':79}
    print(score)
    #用一个字典(字典、序列、关键字参数)来更新原有的字典:对于已有key,是更新value,对不存在的value,
    #是添加key-value
    score.update({'语文':92,'生物':86})
    print(score)
    #使用序列作为参数,此时序列的每个元素都只能是2个元素,第一个是key第二个是value
    score.update([[('语文',82),('地理',80)])
    print(score)
    #使用关键字参数,不支持表达式
    score.update(语文=79,化学=93)
    print(score)

pop()方法用于获取、并删除指定key对应的value

popitem()方法用于随机地弹出字典中一个key-value对

setdefault()方法也用于根据key获取对应的value值,并为不存在的key设置默认值

fromkeys()方法使用给定的多个key创建字典,这些key对应的value默认都是None,也可以额外传入参数作为默认的value

6.用字典格式化字符串

可在字符串模板中按key指定变量,然后通过字典为字符串模板中key设置值

用元组来格式化字符串,故而要根据位置来填充占位符

s1='图书名为:%s,价格为:%10.2f';
 print(s1 % ("疯狂java将以",128))

用字典dict来格式化字符串,根据key来填充占位符

s2='图书名为:%(name)s,价格为:%(price)10.2f';
 print(s2 % {"price":128,'name':"分开发发"})