Python中字典的使用

一、字典的定义

1、使用花括号

d0 = {}

2、 使用dict()表示

d1 = dict(name="Mary", age=20)
print(type(d0), type(d1))
print(d1)
#  
# {'name': 'Mary', 'age': 20}

二、键与值

1、字典由键值对构成 ,即key-value

2、键和值之间用冒号隔开,即key: value

3、键值对之间用逗号隔开,每个键值对后面都有逗号,且换行,即key: value,

d3 = {
    "name": "Mary",
    "age": 20,
    "addr": "City",
    "num": range(10),
}
print(d3)
# {'name': 'Mary', 'age': 20, 'addr': 'City', 'num': range(0, 10)}

三、字典是可变的数据类型

1、空字典的类型表示假。(假: False,{},[],None,"",0)

2、字典的值(value)可以是任意数据类型

d4 = {
    "key1": None,
    'key2': True,
    'key3': range(10),
    'key4': [1, 3, 5, 8],
    'key5': {
        'key51': {
            'key511': "key5中的key51中的key511",
            'key512': "key5中的key51中的key512"
        },
        'key52': ["key52中的列表"]
    }
}

3、 字典中的键的类型

绝大多数都是字符串的类型;不可变数据类型也可以作为键,包括五种基本数据类型、元组。

d5 = {
    None: "None可以作为键",
    True: "True可作为键",
    bool: "bool类型",
    200: "int型",
    3.14: "float型",
    (2,): "不可变类型-元组类型",
    # 列表和值不可以作为键的类型
    # 键不可以重复,值可以重复
    True: "重名的键,其中的值被后面的值覆盖",
    "replace": "wait"
}

注意:字典是可变的数据类型,即字典不可以作为键。 

四、字典中的使用方法

(一)、获取与修改

字典的访问

print(d5[bool])
# bool类型

根据键进行修改

 若访问的键值存在覆盖即可,没有则加入到字典中。

# 更改设置键,如果存在则覆盖
d5[bool] = "bool类型可以作为键"
# 原来没有则加入
d5["new"] = "新加的键值"
print(d5)
# {None: 'None可以作为键', True: '重名的键,其中的值被后面的值覆盖', 
# : 'bool类型可以作为键', 200: 'int型', 3.14: 'float型', 
# (2,): '不可变类型-元组类型', 'replace': 'wait', 'new': '新加的键值'}

(二)、字典的遍历

1、方法一:获取键,根据键取值

for key in d5.keys():
    print(key, d5[key])

2、 方法二:获取值,无法对应键

for value in d5.values():
    print(value)

3、 方法三:获取键值,得到的是元组,将元组中的两个元素分别赋予key,value

for key, value in d5.items():
    print(key, value)
for item in d5.items():
    # 分别取到元组中的第一个与第二个内容,item的类型为元组
    print(item[0], item[1], type(item))

(三)、字典的操作

1、遍历

(1)、keys():遍历所有的键
# 找到所有的键key
print(d5.keys())
(2)、values():遍历所有的值
print(d5.values())
(3)、items():遍历键值对
print(d5.items())

2、删除

(1)、value = pop(key):根据写入的key返回value
r = d5.pop(True)
print(r)
(2)、key, value =popitem():默认删除最后一个,不可写入参数,即后进先出
print(d5.popitem())
(3)、clear():清空字典无返回值
print(d5.clear())

3、修改

(1)、update({    }):修改添加键值对,没有返回值;一般添加字典类型

若修改的键在字典中,则覆盖原来的内容;若要修改的键不在字典中则在字典中添加键值对。

d5.update({
    "update1": "update1若原有列表没有则添加进去",
    "replace": "若原有列表有,则覆盖原有内容"

})
(2)、dict.fromekeys(keys, value):由dict类初始化一个新字典

前一个参数是可迭代的,作为key,后一个参数作为所有key的value。

print(dict.fromkeys(range(10), "ok"))
(3)、setdefault(key, value):根据key查找value,原来有则返回原来的值,原来没有加入字典中。
a = d5.setdefault(200, 500)
# 原来没有的加入字典中
r = d5.setdefault("sex","setdefault方法可更新原来没有的值")
print(a, r)
print(d5)

4、取值

(1)、get:查找取值

原来字典中存在返回键对应的值;原来没有返回None;不添加在原有字典中。

print(d5.get(bool))
print(d5.get(500))
print(d5.get(300, "okk"))
print(d5)
# bool类型
# None
# okk

5、求长度

# len 求键值对长度
print(len(d5))

6、in判断键是否在字典中

for key in d5:
    print(key)

你可能感兴趣的:(python,开发语言)