python学习笔记:数据类型之字典(dictionary)

  • 字典是一种可变容器模型,且可存储任意类型对象。
  • 字典由键值(对)构成,格式如:{ key1:value1, key2:value2......}
  • 键:唯一的,即key:value1和key: value2不可能同时存在
  • 键:必须是不可变的,如:字符串,数字或元组,不能是list等类型
  • 值: 可以取任何数据类型

一、创建字典

一般两种方法:

     (1)方法1:使用python标准函数dict()

     (2)方法2:直接用 { }

 1. 创建空字典

d1=dict()
d2={}

 2. 创建非空字典

pairs=[("cat",5),("cow",98),("dog",12)]
d1=dict(pairs)    #output:{"cat":5,"cow":98,"dog":12}

d2={"cat":10,"cow":100,"dog":9}

二、字典操作

2.1. 单个字典的操作

  1. len(d):返回字典d的键值对数
  2. d.copy():创建字典d的浅拷贝
  3. d.clear():删除字典d的全部键值对
  4. for key in d:遍历字典d中的全部键
d1={1:[1,2,3,4,5],2:"abdefg"}
print(lend(d))              #output: 2

d2={1:"a"}
d3=d2.copy(d2)
d2[2]="b"
print(d2)                   #output:2
print(d3)                   #output:1


d2.clear()                  #now d2 is an empty dictionary

d={1:"a",2:"b"}
for key in d:
    print(key,d[key])       #output: 1 "a"   2 "b"

2.2 字典和键的操作

  1. key in d:判断字典d中是否有键为key
  2. key  not in d:判断字典d中是否没有键为key
  3. d[key]:返回字典d中键为key的值,若键为key不存在引发KeyError
  4. d[key]=value:对字典d赋值key-value键值对,若key已存在,则修改其值为value,若不存在,添加键值对
  5. get( key [,default] ):获取字典d中键为key的值,若key键不存在,则返回default值,若default未定义,此时返回None
  6. del d[key]:删除字典d中键为key的键值,若key不存在,引发KeyError
d = { 1:"a", 2:"b" }
print(0 in d)         # False
print(1 in d)         # True
print("a" in d)       # False

print(0 not in d)     # True
print(1 not in d)     # False
print("a" not in d)   # True

print(d[1])           # "a"
print(d[3])           # crash! KeyError

d = { 1:"a", 2:"b" }
d[1]=42
print(d[1])           # 42

d = { 1:"a", 2:"b" }
print(d.get(1))       # "a"
print(d.get(1,42))    # "a"
print(d.get(0))       #None
print(d.get(0,42))    #42

d = { 1:"a", 2:"b" }
print( 1 in d)        #True
del d[1]
print( 1 in d)        #False
del d[1]              #crash! KeyError

2.3  两个字典的操作

  1. d1.update(d2):更新字典d1,将字典d2中的键值对添加到字典d1中。如果字典d1中的某些键也在字典d2中,则字典d1中这些键的值修改为字典d2中这些键的值
d1 = { 1:"a", 2:"b" }
d2 = { 2:"c", 3:"d" }
d1.update(d2)     
d2[4] = "e"
print(d1)              # {1:"a",2:"c",3:"d"}
print(d2)              # {2:"c",3:"d",4:"e"}

猜你喜欢

转载自blog.csdn.net/xiaozhimonica/article/details/89374280