字典

特点:{"key1": value1, "key2":value2}  , 键值对中的值可以为任何数据类型,键不能为列表、字典(无法哈希),布尔值可以为键(0/1)但是可能会与其他的键重复;字典的存储是无序的。

基本操作:

# 字典
info = {
"k1": 18,
2: True,
"k3": [11, 22, 33],
"k4": {"kk1": "vv1", "kk2": (44, 55)},
"k5": (66, 77)
} # 通过索引找到指定元素
v = info["k4"]["kk2"][0]
print(v)

输出:


# 字典支持 del 删除
del info["k4"]["kk2"]
print(info)

输出:

{'k1': 18, 2: True, 'k3': [11, 22, 33], 'k4': {'kk1': 'vv1'}, 'k5': (66, 77)}
# for 循环遍历列表(默认输出键)
for i in info.keys(): # keys()可以省略
print(i)

输出:

k1
2
k3
k4
k5
# for 循环输出值
for i in info.values():
print(i)

输出:

18
True
[11, 22, 33]
{'kk1': 'vv1', 'kk2': (44, 55)}
(66, 77)
# for 循环输出键值对
for k, v in info.items():
print(k, v)

输出:

k1 18
2 True
k3 [11, 22, 33]
k4 {'kk1': 'vv1', 'kk2': (44, 55)}
k5 (66, 77)

方法:

  1、clear()

  2、copy() (浅拷贝)

  参考Python - 基本数据类型及其常用的方法之字符串篇

  3、fromkeys()(静态方法:类名加方法引用)

# 根据序列, 创建字典, 并指定统一的值
v = dict.fromkeys(["wo", "ai", "ni"], "wyj")
print(v)

输出:

{'wo': 'wyj', 'ai': 'wyj', 'ni': 'wyj'}

  3、get()

info = {"k1": "v1"}
# 根据key获取值,当key不存在时,返回指定的值
# 当key不存在时且未指定返回值时返回None
v = info.get("k1")
print(v)
v = info.get("k2", 111)
print(v)

输出:

v1
111

  4、pop()

info = {
"k1": "v1",
"k2": "v2"
}
# 删除并获取值
v = info.pop("k1") # 指定键值对中的键并删除
print(info, v)

输出:

{'k2': 'v2'} v1
v = info.pop("k3", 111) # 指定的键不存在时,不删除返回指定的值
print(info, v)

输出:

{'k1': 'v1', 'k2': 'v2'} 111

  5、poplines()

info = {
"k1": "v1",
"k2": "v2"
}
# 随机删除并获取值
# v = info.popitem()
# print(info, v)
k, v = info.popitem()
print(info, k, v)

输出:

{'k1': 'v1'} k2 v2

  6、setdefault()

info = {
"k1": "v1",
"k2": "v2"
}
# 设置值
# 若指定的key已存在,不设置,获取对应的value值
# 若指定的key不存在,设置,获取对应的指定的key的value值
v = info.setdefault("k1", 123)
print(info, v)
v = info.setdefault("k3", 123)
print(info, v)

输出:

{'k1': 'v1', 'k2': 'v2'} v1
{'k1': 'v1', 'k2': 'v2', 'k3': 123} 123

  7、update()

info = {
"k1": "v1",
"k2": "v2"
}
# 覆盖已存在的,添加未存在的
info.update(k1=123, k2=456, k3="wyj") # info.update({"k1": 123, "k2": 456, "k3": wyj})
print(info)

输出:

{'k1': 123, 'k2': 456, 'k3': 'wyj'}

布尔值

特点:bool(True/False)  其中None、 {}、 []、0、()、“”==> False,其他都为True

最新文章

  1. Hibernate框架搭建实例
  2. AutoLayout(自动布局)
  3. IEnumerable,IQueryable之前世今生
  4. 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...
  5. JProfiler 使用说明
  6. centos下安装xfce+vnc
  7. nginx的请求接收流程(二)
  8. LintCode-丢失的第一个正整数
  9. 纯Python综合图像处理小工具(1)分通道直方图
  10. 拦截asp.net输出流做处理, 拦截HTML文本(asp.net webForm版)
  11. pt-tcp-model
  12. PostgreSQL10.1 linux 编译安装
  13. N皇后问题(状态压缩实现)
  14. Geoserver+Postgresql+PostGIS 进行数据发布
  15. 在 Linux 虚拟机中手动安装或升级 VMware Tools
  16. Java知多少(6)第一个程序示例
  17. SQLServer 取 字段名称 类型 字段描述 等
  18. Java 1.ExecutorService四种线程池的例子与说明
  19. SQL Server 触发器 表的特定字段(一个字段)更新时,触发Update触发器
  20. reload maven project' has encountered a proble" 问题

热门文章

  1. (1)python tkinter-窗体
  2. jquery判断是pc端还是移动端
  3. 集中式日志分析平台 - ELK Stack - 安全解决方案 X-Pack
  4. 第二周课堂笔记1th
  5. POJ - 3294~Relevant Phrases of Annihilation SPOJ - PHRASES~Substrings POJ - 1226~POJ - 3450 ~ POJ - 3080 (后缀数组求解多个串的公共字串问题)
  6. 面试系列10 es生产集群的部署架构
  7. iOS逆向系列-theos
  8. css3 随记
  9. redis深入学习(三)-----事务、主从复制、jedis
  10. 【源码】PyObject_VAR_HEAD 定长对象 变长对象