类:dict

#字典是无序的

1、前戏

info = {
"k1": "v1", # 键值对
"k2": "v2"
}

2、字典的value可以是任何值

info = {
"k1": 18,
"k2": True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
print(info) 结果:
{'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}

3、 列表、字典不能作为字典的key,key值不能重复。

info ={
#1: 'asdf',
"k1": 'asjlkdf',
#True: "123",#True不能跟1同时作为key,重复的只显示一个因为1=True
#[11,22]: 123
(11,22): 123,
#{'k1':'v1'}: 123 }
print(info) 结果:
{'k1': 'asjlkdf', (11, 22): 123}

4、字典无序

5、索引方式找到指定元素

info = {
"k1": 18,
2: True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
# v = info['k1']
# print(v)
# v = info[2]
# print(v)
v = info['k3'][5]['kk3'][0]
print(v) 结果:
11

6、字典支持del删除

info = {
"k1": 18,
2: True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
del info['k1'] del info['k3'][5]['kk1']
print(info) 结果:
{2: True, 'k3': [11, [], (), 22, 33, {'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}

7、for循环

info = {
"k1": 18,
2: True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
} #for循环健
for item in info。key:
print(item) #结果
k1
2
k3
k4 #for循环值
for item in info.values():
print(item) 结果:
18
True
[11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
(11, 22, 33, 44) #for循环键值
for k,v in info.items():
print(k,v) 结果:
k1 18
2 True
k3 [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
k4 (11, 22, 33, 44)

方法:

1、根据序列,创建字典,并指定统一的值

v = dict.fromkeys(["k1",123,"999"],123)
print(v) 结果:
{'k1': 123, 123: 123, '999': 123}

2、根据Key获取值,key不存在,可以指定默认值None

dic = {
"k1":"v1"
} v = dic.get('k1',None)
#根据Key获取值,key不存在时,可以指定默认值(None)
v1 = dic.get("k",None)
print(v)
print(v1) 结果:
v1
None

3、删除并获取值

dic = {
"k1": 'v1',
"k2": 'v2'
}
v = dic.pop('k1',None)
v1 = dic.pop('k11',None)
print(dic,v)
print(dic,v1) 结果:
{'k2': 'v2'} v1
{'k2': 'v2'} None

4、设置值

dic = {
"k1": 'v1',
"k2": 'v2'
}
v = dic.setdefault('k1111','123')
print(dic,v) 结果:
{'k1': 'v1', 'k2': 'v2', 'k1111': '123'} 123
# 已存在,不设置,获取当前key对应的值
# 不存在,设置,获取当前key对应的值

5、更新

dic = {
"k1": 'v1',
"k2": 'v2'
}
dic.update({'k1': '111111','k3': 123})
print(dic)
dic.update(k1=123,k3=345,k5="asdf")
print(dic) 结果:
{'k1': '111111', 'k2': 'v2', 'k3': 123}
{'k1': 123, 'k2': 'v2', 'k3': 345, 'k5': 'asdf'}

  

day12 Python字典的更多相关文章

  1. Python字典和集合

    Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...

  2. python 字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  3. python字典中的元素类型

    python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...

  4. python字典copy()方法

    python 字典的copy()方法表面看就是深copy啊,明显独立 d = {'a':1, 'b':2} c = d.copy() print('d=%s c=%s' % (d, c)) Code1 ...

  5. python 字典实现类似c的switch case

    #python 字典实现类似c的switch def print_hi(): print('hi') def print_hello(): print('hello') def print_goodb ...

  6. python字典的常用操作方法

    Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串.数字.元组等其他容器模型.本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建.访问.删除.其它操作等,需 ...

  7. Python 字典(Dictionary)操作详解

    Python 字典(Dictionary)的详细操作方法. Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字 ...

  8. Python 字典(Dictionary) get()方法

    描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ...

  9. Python 字典(Dictionary) setdefault()方法

    描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: ...

随机推荐

  1. IQuerable与IEnumable的区别

    核心区别: IQueryable该接口会把查询表达式先缓存到表达式树Expression 中,只有当真正用到数据的时候(例如 遍历 ),才会由IQueryProvider解析表达式树,生成sql语句执 ...

  2. ArrayList和LinkedList的区别以及优缺点

    作用 ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用.他们都可以对元素的增删改查进行操作. 对于ArrayList,它在集合的末尾删除或添加元素所用的 ...

  3. Java-关于类

    java-关于类-成员初始化问题 成员初始化出现错误“    - Syntax error on token ";", , expected” java类不允许对成员进行操作,但可 ...

  4. JavaScript实现省市区的三级联动

    JavaScript实现省市区的三级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &qu ...

  5. linux下vscode的c++工程配置

    准备 安装vscode,可直接下载deb包进行安装,完成后安装C/C++ for Visual Studio Code插件,安装后重启(最新1.3版本以后不需要重启). 生成目录和文件 新建文件夹[t ...

  6. array.js

    // “最后加” concat 连接两个或更多的数组,并返回结果. var a = ['a','b','c']; var b = ['x','y','z']; var c = a.concat(b,t ...

  7. Maven 环境搭建及使用(win10)

    最近由于公司项目需要,学习了一下Maven 环境的配置.这里把配置步骤和简单的操作做一个汇总. 一.Maven环境的搭建 1.配置java环境(这里不详述过程,可参考:http://www.cnblo ...

  8. Cordova/Ionic开发的Android APP启用Chrome Inspect调试的方法

    Cordova/Ionic开发的Android APP,需要启用WebView的调试模式,才可以在Chrome浏览器中输入chrome://Inspect,然后使用大家熟悉的开发者工具进行调试.不启用 ...

  9. redis介绍 (8) window 下redis的集群(cluster命令)

    前言: 前段时间我在centos上搭建过一次redis集群,那是借助ruby搭建,这次我介绍一种纯redis集群命令的方式去搭建[最后我会简单介绍ruby搭建]. redis集群搭建(三主三备): 准 ...

  10. Java:[面向对象:继承,多态]

    本文内容: 继承 多态 首发时期:2018-03-23 继承: 介绍: 如果多个类中存在相同的属性和行为,可以将这些内容抽取到单独一个类中,那么多个类(子类)无需再定义这些属性和行为,只要继承那个类( ...