字典的魔法
dict
创建一个字典
info = {
"k1": "v1",
"k2":"v2"
}
字典value
info = {
"k1":18,
"k2":True,
"k3":[
11,
22,
33,
{
'kk1':'vv1',
'kk2':'vv2',
'kk3':'vv3'
}
]
}
print(info)
---
{'k3': [11, 22, 33, {'kk3': 'vv3', 'kk1': 'vv1', 'kk2': 'vv2'}], 'k2': True, 'k1': 18}
布尔值为key时,如果有数字1或0为key时,可能会重复,key需要是唯一的。
info = {
1:'asdf',
"hehe":"asdf",
True:"123"
}
print(info)
---
{1: '123', 'hehe': 'asdf'}
要点
- 数字允许为key
- 列表不能做为字典的key
- 字典也不能做为字典的key
- 字典是无序的。
- 字典可以循环,默认循环所有的key
字典取值
v = info["k1"]
print(v)
---
18
通过索引的方式找到指定的值。
v = info["k3"][3]["kk3"][0]
print(v)
---
11
删除键值对
del info['k1']
print(info)
---
{'k2': True, 'k3': [1, 22, 33, {'kk2': 'vv2', 'kk3': [11, 22, 33], 'kk1': 'vv1'}]}
del info['k3'][3]['kk1']
print(info)
---
{'k1': 18, 'k3': [1, 22, 33, {'kk2': 'vv2', 'kk3': [11, 22, 33]}], 'k2': True}
找出所有的key
for item in info.keys(): #不使用keys()方法默认循环所有key
print(item,info(item))
---
k1
k3
k2
找出所有的values
for item in info.values():
print(item)
---
True
18
[1, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': [11, 22, 33]}]
同时取出key,values------> items()方法
for k,v in info.items():
print(k,v)
---
k3 [1, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': [11, 22, 33]}]
k1 18
k2 True
字典中的方法
def items()
def values()
def items()
def update()
def clear()
def copy()
def fromkeys()
def get()
def pop()
def popitem()
根据序列创建字典,并指定统一的值---fromkeys
dic = {
"k1":"v1"
}
v = dict.fromkeys(["k1",123,"999"],123)
print(v)
---
{123: 123, 'k1': 123, '999': 123}
根据key获取值,key不存在时,可以指定默认值,默认值不存在是返回None
dic = {
"k1":"v1"
}
v = dic.get('k1')
print(v)
---
v1
# 当要取的key在字典中没有时不会报错,返回None
v = dic.get('kkk',1111)
print(v)
---
1111
删除key,并获取值 pop
dic = {
"k1":"v1",
"k2":"v2"
}
dic.pop('k1')
print(dic)
---
{'k2': 'v2'}
v = dic.pop('k1')
print(dic,v)
---
{'k2': 'v2'} v1
# pop后可以加默认值,当值不存在时可以返回默认值
v = dic.pop('k1',90)
···
#### 设置默认值 setdefault
v = dic.setdefault('k3','12') #当值key值存在时,不改变,不存在加上
print(dic,v)
{'k3': '12', 'k1': 'v1', 'k2': 'v2'} 12
#### 更新
dic = {
"k1":"v1",
"k2":"v2"
}
v = dic.update({'k1':'1111','k3':123})
print(dic,v)
{'k3': 123, 'k1': '1111', 'k2': 'v2'} None
第二种写法
dic.update(k1=123,k3=123,k4="asdf") #python默认转换为字典
## 总结
#### 1.数字
int(...)
#### 2.字符串
replace/find/join/strip/startswith/split/upper/lower/format
template = "i am {name}, age: {age}"
v = template.format(name='alex',age=19)
v = template.format(**{"name": 'alex', 'age': 19)
print(v)
#### 3.列表
append/extend/insert
索引、切片、循环
#### 4.元组
忽略
索引、切片、循环,以及元素不能被修改删除等
#### 5.字典
get / update / keys / values / items
for 索引
v = "k1" in dic.values()
print(v)
False
#### 6.布尔值
0 1
bool(...)
False------> None "" "{}" "[]" "()" 0

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
关于多线程的几道面试小题
1.自定义类MyThread继承Thread类,为什么要重写run()方法? 自定义类中不是所有的代码都需要被线程执行。而这个时候,为了区分哪些代码能够被线程执行,java提供了Thread类中的run()方法,用来包含那些需要被线程执行的代码。注意:这里的 被线程执行 = 开一个新线程执行 2.run()和start()的区别?run():仅仅是封装被线程执行的代码,直接调用就是普通方法。start():首先启动了线程,然后再由jvm去调用该线程的run()方法。 3.线程能不能多次启动start()? 不能,一个线程不能被多次启动。线程被多次启动会抛出异常:IllegalThreadStateException:非法的线程状态异常 示例代码如下: 1 package cn.itcast_02; 2 3 /* 4 * 该自定义的类为什么要重写run()方法? 5 * 自定义类中不是所有的代码都需要被线程执行。 6 * 而这个时候,为了区分哪些代码能够被线程执行,java提供了Thread类中的run()方法,用来包含那些需要被线程执行的代码。 7 * 8 * 注意:这里的 被线程执行...
-
下一篇
初学Python—列表和元组
一、什么是列表 列表是一系列数据的集合 二、列表的引用 首先定义一个列表 1 names=["alex","bob","alice","jim"] View Code 列表引用: name[0] name[1] print(name[3]) View Code 三、列表操作 1.查询列表元素 ①利用下标输出列表元素 print(names[0]) #输出列表第一个元素 print(names[0:5]) #输出列表前五个元素(顾头不顾尾) print(names[-1]) #输出列表最后一个元素 print(names[-4:-1])#输出列表倒数第四个至倒数第二个元素的值(顾头不顾尾) print(names[-3:0])#输出列表最后三个元素print(nemas[::3]) #从第一个元素开始,每三个元素输出一个(隔两个元素输出一个元素) ②查找元素所在位置:index方法 print(names.index("alex")) #查找元素“alex”的下标,输出为0 ③统计相同元素的个数:count方法 print(names.count("alex")) #输出“alex”元素...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器