Python - 基本数据类型及其常用的方法之字典和布尔值
2024-08-31 14:25:48
字典
特点:{"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
最新文章
- Hibernate框架搭建实例
- AutoLayout(自动布局)
- IEnumerable,IQueryable之前世今生
- 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...
- JProfiler 使用说明
- centos下安装xfce+vnc
- nginx的请求接收流程(二)
- LintCode-丢失的第一个正整数
- 纯Python综合图像处理小工具(1)分通道直方图
- 拦截asp.net输出流做处理, 拦截HTML文本(asp.net webForm版)
- pt-tcp-model
- PostgreSQL10.1 linux 编译安装
- N皇后问题(状态压缩实现)
- Geoserver+Postgresql+PostGIS 进行数据发布
- 在 Linux 虚拟机中手动安装或升级 VMware Tools
- Java知多少(6)第一个程序示例
- SQLServer 取 字段名称 类型 字段描述 等
- Java 1.ExecutorService四种线程池的例子与说明
- SQL Server 触发器 表的特定字段(一个字段)更新时,触发Update触发器
- reload maven project' has encountered a proble"; 问题
热门文章
- (1)python tkinter-窗体
- jquery判断是pc端还是移动端
- 集中式日志分析平台 - ELK Stack - 安全解决方案 X-Pack
- 第二周课堂笔记1th
- POJ - 3294~Relevant Phrases of Annihilation SPOJ - PHRASES~Substrings POJ - 1226~POJ - 3450 ~ POJ - 3080 (后缀数组求解多个串的公共字串问题)
- 面试系列10 es生产集群的部署架构
- iOS逆向系列-theos
- css3 随记
- redis深入学习(三)-----事务、主从复制、jedis
- 【源码】PyObject_VAR_HEAD 定长对象 变长对象