python学习日记5

今天开始学习字典。

字典是python唯一的内置映射,分为,“键-值”成为项,键和值用冒号分隔,例如:

 
name={"tom":"88888","mary":"666666"}
 

可以使用函数dict(dict和str,list,tuple一样,实际上是一个类)从其他映射(例如其他字典)或键-值对创建字典。

 
name={"tom":"88888","mary":"666666"}
d=dict(name)
print(d)
print(d["tom"])#调用某个键值

i=[("name","age"),("tom","18")]#这是一个键-值对
d=dict(i)
print(d)

d=dict(name="tom",age="18")#使用关键字实参创建
print(d)
print(d["name"])
 

基本操作如下:

len(d) 返回键-值对数
d[k] 返回键k对应的值
d[k]=v 将v关联至k
del d[k] 删除键k对应的值
k in d 检查字典d中是否有键为k的项

字典的键可以是任何不可变的类型。在列表中,我们不能给不存在的元素赋值(需要使用attend添加),但字典会自动创建一个新项。

字典中的k in d(d是字典)查找的是键,v in l(l是列表)查找的是值而不是索引,这里容易记混。

字典可以进行嵌套:

 name={
    "tom":{
        "phone":"88888",
         "gender":"male"},
    "mary":{
        "phone":"66666",
        "gender":"female"}
    }
n=input("input the name:" )
print(name[n]["phone"])

我们也可以使用format_map将字符串格式设置功能用于字典:

 
a={"tom":"8888","mary":"6666"}
print("his number is {tom}".format_map(a))
 

在web开发中,format_map十分有用,可以用来替换html模板中的参数。

下面是字典方法:

clear 清空字典
copy 浅复制字典,相当于指针指向,复制件改变时,原件也会改变
deepcopy 深复制,相当于dict
fromkeys(“t1″,”t2″,”none”) 使用以上键创建一个新字典,值不填默认为none
get 访问不存在的项不会报错而输出none,例如:d.get(“name”)
items 返回一个包含字典所有项的列表,值为(key,val)格式,排序不确定(此法详细讲解见下)。
keys 返回一个字典视图,其中包含指定字典中的键。
pop 返回一个与指定键对应的值,并将该键-值对删除
popitem 类似list.pop,但list.pop弹出最后一个元素,popitem随机弹出一个元素。
setdefault 类似get,不过会在指定的键不存在时添加键-值对(值默认None,但可以指定)。
update 使用一个字典中的项更新另外一个字典。对于通过参数提供的字典,将其项添加到当前字典中,如果包含相同的项,就替换它。也可以像dict那样,提供一个映射或键值序列(或其他可迭代对象)。
values 返回由字典的值组成的字典视图,不同于keys,value可能包含重复的值。

item的返回值为字典视图,字典视图可用于迭代,可以确定其长度或进行资格检查。字典视图是对底层字典的反应,原字典修改时,字典视图也随着修改。如果不想如此的话可以将它使用list转换为列表(老版本的item直接转换为列表)。

知识共享许可协议
Text is available under CC BY-NC-SA 4.0 unless otherwise stated.

除非特殊声明,本站所有内容均以 CC BY-NC-SA 4.0协议授权。
上一篇
下一篇