字典
- 概念:
无序的
,可变的
,键值对
集合 - 定义
1. {key: value, key1: value2, key2: value2, ...} personDict = {"name": "wxx", "age": 18, "address": "杭州市"} 2. fromkeys(S, v=None):静态方法,类调用 personDict = dict.fromkeys(["name", "age", "address"], 888) print(personDict) 3. fromkeys(S, v=None):静态方法,对象调用 tempDict = {"a": "王", "b": "小", "c": "熊"} personDict = tempDict.fromkeys("abc", 888) print(personDict) 4. 字典推导式 s1 = 'this is a good book' s2 = {word: True for word in s1.lower().split()} print(s2) 注意: (1) key 不能重复;如果重复,后值会把前值覆盖 (2) key 必须是任意不可变类型 可变:列表,字典,可变集合 不可变:数值,布尔,字符串,元组
- 应用
- 可以通过
key
,访问对应的值,使得这种访问更具意义personDict = {"name": "wxx", "age": 18, "address": "杭州市"} nameData = personDict["name"] print(nameData)
- 查询效率得到很大提升
- 可以通过
- 操作
- 增
""" 作用:当 key 在原字典中不存在时,即为新增操作 语法:dict[key] = value """ personDict = {"name": "wxx", "age": 18} personDict["address"] = "杭州市" print(personDict)
- 删
- del 语句
""" 注意:key,必须要存在 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} del personDict["name"] print(personDict)
- pop
""" 作用:删除指定的键值对,并返回对应的值 语法:d.pop(key[, default]) 注意:如果 key 不存在,那么直接返回给定的 default 值,不作删除操作 如果 key 不存在,且没有给定默认值,则报错 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} removeItem = personDict.pop("age", 23) print(vItem, personDict)
- popitem
""" 作用:删除按升序排序后的第一个键值对,并以元组的形式返回该键值对 语法:d.popitem() 注意:如果字典为空,则报错 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} removeItem = personDict.popitem() print(removeItem)
- clear
""" 作用:删除字典内所有键值对 语法:d.clear() 返回值:None 注意:字典对象本身还存在,只不过内容被清空 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} removeItem = personDict.clear() print(removeItem, personDict)
- del 语句
- 改
- 修改单个键值对
""" 作用:当 key 在原字典中存在时,即为修改操作 语法:dict[key] = value """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} personDict["name"] = "qtt" print(personDict)
- 批量修改键值对
""" 作用:根据新的字典,批量更新旧字典中的键值对 语法:oldDict.update(newDict) 注意:如果旧字典没有对应的 key,则新增键值对 """ personDict = {"name": "wxx", "age": 18} personDict.update({"age": 23, "address": "杭州市"}) print(personDict)
- 修改单个键值对
- 查
- 获取单个值
1. """ 语法:dict[key] 注意:如果 key 不存在,则会报错 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} findItem = personDict["name"] print(findItem) 2. """ 语法:dict.get(key[, default]) 注意:如果不存在对应的 key,则取给定的默认值 default 如果不存在对应的 key,且没有默认值,则为 None,原字典不会新增这个键值对 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} findItem = personDict.get("code", "666") print(findItem, personDict) 3. """ 语法:dit.setdefault(key[, default]) 注意:如果不存在对应的 key,则取给定的默认值 default,原字典新增这个键值对 如果不存在对应的 key,且没有默认值,则为 None,原字典新增这个键值对 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} findItem = personDict.setdefault("code", "666") print(findItem, personDict)
- 获取所有的
键
、值
和键值对
""" Python2.x:直接是一个列表,可通过下标获取指定元素 注意:viewkeys()、viewvalues()、viewitems(),作用如同 Python3.x 中的 Dictionary view objects """ personDict = {"name": "wxx", "age": 18} # 获取所有的键 keys = personDict.keys() # 获取所有的值 values = personDict.values() # 获取所有的键值对 items = personDict.items() print keys, values, items personDict["address"] = 888 print personDict print keys, values, items """ Python3.x:当字典发生改变时,view objects 会跟着发生改变; 转换成列表使用:list(result); 转换成迭代器:iter(result); 也可以直接被遍历 """ personDict = {"name": "wxx", "age": 18} # 获取所有的键 keys = personDict.keys() # 获取所有的值 values = personDict.values() # 获取所有的键值对 items = personDict.items() print(keys, values, items) personDict["address"] = 888 print(personDict) print(keys, values, items)
- 遍历
1. 先遍历所有的 key ,然后根据指定的 key ,获取到对应的值 personDict = {"name": "wxx", "age": 18, "address": "杭州市"} keys = personDict.keys() for key in keys: print(key) print(personDict[key]) 2. 直接遍历所有的键值对 personDict = {"name": "wxx", "age": 18, "address": "杭州市"} items = personDict.items() for k, v in items: print(k, v)
- 获取单个值
- 计算
""" 键值对个数 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} length = len(personDict) print(length)
- 判定
""" 针对 key 判定 """ personDict = {"name": "wxx", "age": 18, "address": "杭州市"} print("name" in personDict) print("name" not in personDict)
- 增
网友评论