python笔记——字典操作详解

字典是python里面唯一的映射类型,由一个个键值对组成。

  1. 字典的创建
  2. 字典的查询
  3. 字典的删除
  4. 字典的修改or添加
  5. 字典的内置方法(BIF)
  6. 字典的特性
  7. 通讯录练习

一、创建字典(two)


  1. 使用{}创建

  2. 使用dict()函数

demo

>>> dict1 = {'one':1,'two' : 2,'three' :3}
>>> dict2 = dict(one = 1, two =2, three = 3)
>>> print(dict1['one'])
>>> print(dict2["one"])
1
1

上面的demo中需要注意的是dict()方法创建字典的时候无需key无需加"",这个函数会自动给key加"",如果你加上它会报错。

二、查询字典


  1. dict
    访问整个字典,字典会无序的返回,因为字典重视的是key和value之间的对应关系,而非排序。

  2. dict1[“key”]:
    通过访问key,返回value,
    print(dict[“one”])

  3. dict1.get(“key”,“报错内容”):
    如果字典中不存在某个key,而你访问的话会报错,这个时候使用get方法比较合适
    如果存在key,会直接返回key对应的value,如果不存在返回你设置的报错内容。

demo

>>> dict2 = dict(one = 1, two =2, three = 3)
>>> print(dict2)
{'one': 1, 'two': 2, 'three': 3}   ##这是巧合,一般会返回无序的字典
>>> print(dict2["one"])
1
>>> print(dict2.get("one","不存在"))  #虽然get后面有报错内容,但键存在所以不会显示
1
>>> print(dict2.get("five","不存在"))   #five这个键不存在,所以会显示报错内容,给用户良好的交互感。
不存在

三、删除字典

  1. del dict1:
    删除整个字典
  2. dict1.clear()
    删除整个字典
  3. del dict[“key”]
    删除字典中的键-值对
  4. dict.pop(“key”)

四、修改or添加字典


dict[“key”] = value:
如果key存在,则修改value,如果key不存在,则添加value

demo

>>> dict2 = dict(one = 1, two =2, three = 3)
>>> dict2["two"] = 22
>>> dict2["four"] = 4
>>> print(dict2)
{'one': 1, 'two': 22, 'three': 3, 'four': 4}

五、字典的内置方法(BIF)


clear() #删除字典内所有元素
copy() #返回一个字典的浅复制
fromkeys() #初始化一个新字典对象,以序列seq中元素做字典的键,val为字典所有键对应的初始值

c=dict.fromkeys([7,8,9],"test")
print(c)

get(key, default=None) #返回指定键的值,如果值不在字典中返回default值
has_key(key) #如果键在字典dict里返回true,否则返回false
items() #以列表返回可遍历的(键, 值) 元组数组
keys() #以列表返回一个字典所有的键
setdefault(key, default=None) #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
update(dict2) #把字典dict2的键/值对更新到dict里
values() #以列表返回字典中的所有值

六、key的特性


  1. 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
  2. 键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行

七、利用字典特性实现通讯录功能


python笔记——字典操作详解_第1张图片

tong = {"one":1}
temp = print("|---欢迎进入通讯录程序---|\n|---1:查询联系人资料---|\n|---2:插入新的联系人---|\n|---3:删除已有联系人---|\n|---4:退出通讯录程序---|")
while True:
    instr =int(input("请输入相关的指令代码:"))
    if instr == 2:
        contact = str(input("请输入联系人姓名:"))
        if contact in tong:
            instr1 = str(input("您输入的用户名已经存在-->>",a,":",tong[a],"\n是否修改用户资料(Yes/No):"))
            if instr1 == "Yes":
                tel = int(input("请输入用户联系方式:"))
                tong[contact] = tel        
        else:
            tel = int(input("请输入用户联系方式:"))
            tong[contact] = tel
    elif instr == 1:
        contact = str(input("请输入联系人姓名:"))
        if contact in tong:
            print(tong[contact])
        else:
            print("通讯录中没有此人")
    elif instr == 3:
        contact = str(input("请输入联系人姓名:"))
        if contact in tong:
            del tong[contact]
        else:
            print("通讯录中没有此人")
    elif instr == 4:
        print("|---感谢使用通讯录程序---|")
        break

你可能感兴趣的:(python,python入门总结)