一 字典基本介绍

python中只有字典是映射结构,通过key取值,并且key是不可变数据类型,而value可以是任意数据类型。

字典通过一个花括号,里面存放key:value的数据结构来定义。理论上讲,字典是无限大的。

二 字典常用操作

1 按key取值

dic = {'name':'szz','age':18,'sex':'male')
name = dic['name']
print(name)
# 输出结果为 'szz'

2 计算字典的长度

# len方法计算字典的长度
dic = {'name':'szz','age':18,'sex':'male')
len_of_dic = len(dic)
print(len_of_dic)
# 输出结果为 3

3 字典删除操作

d={'x':1,'y':2,'z':3}
del d['y']
print(d)
# 输出结果为 {'x':1,'z':3} res=d.pop('y')
print(d)
print(res)
pop有返回值 res=d.popitem()
print(res)
# 输出结果为 ('z':3)

4 key,value的操作

# 得到字典中所有的键
d = {'name':'szz','age':18,'sex':'male)
print(d.keys())
print(list(d.keys()))
# 输出结果为 ('name','age','sex)
# ['name','age','sex']
# 得到字典中所有的值,用for循环取值
d={'x':1,'y':2,'z':3}
v = d.values()
for i in v:
print(i)
# 输出结果为 1 2 3
d = {'name':'szz','age':18,'sex':'male','x':1,'y':2,'z':3)
for k,v in d.items():
print(k,v)
# 输出结果为 'name' 'szz' 'age' 18 'sex' male 'x' 1 'y' 2 'z' 3
# 如果直接对字典进行for循环,则默认循环字典的key

5 get方法

d={'name':'szz','age':18,'sex':'male','hobbies':[1,2,3]}
v=d.get('name')
print(v)
# 当不确定字典中是否存在某一个键值时,使用get方法更安全

6 update方法

# update 有新键值对的话会添加进字典,有相同的key则会覆盖旧值
d={'name':'szz','age':18,'sex':'male','hobbies':['read','movie']}
d1={'age':22,'addr':'shanghai'}
d.update(d1)
# 直接在d的基础上改变

7 fromkeys

# 给定一个一直列表,用该列表中的值当做key初始化一个字典
keys=['name','age','sex']
d={}
for k in keys:
d[k]=Noned={}.fromkeys(keys,None)
print(d)
# 输出结果为 {'name':None,'age':None,'sex':None}

8 setdefault

# key存在则修改,不存在则添加
d={"x":1,"y":2}
res=d.setdefault('x',11111) # 在key存在的情况下不修改值,会返回原值print(d)
print(res)
# 输出结果 {'x':1,'y':2}
# 输出结果 1 res=d.setdefault('z',11111) # 在key不存在的情况下会新增值,会返回新增# 的值
print(d)
print(res)
# 输出结果 {'x':1,'y':2','z':11111)
# 输出结果 11111

9 setdefault使用场景

s='hello world world say hello  hello'
d={'hello':4,'word':2,'say':1} d={}
words=s.split()
# print(words)
for word in words:
d[word]=words.count(word)
d.setdefault(word,words.count(word)) print(d)
# 输出结果为 {'hello':4,'word':2,'say':1}

python字典操作和内置方法的更多相关文章

  1. python集合操作和内置方法

    一 集合基本介绍 集合:在{}内用逗号隔开每个值,集合的特点: 每个值必须是不可变类型 集合是无序的 集合的值不能重复 集合的应用场景较少,最重要的应用场景为进行关系运算以及去重. 二 集合的操作 1 ...

  2. Day07 数据类型(列表,元组,字典,集合)常用操作和内置方法

    数据类型 列表list: 用途:记录多个值(同种属性) 定义方式:[]用逗号分隔开多个任意类型的值 list()造出来的是列表,参数是可迭代对像,也就是可以使用for循环的对像 传入字典,出来的列表元 ...

  3. Python 数据类型常用的内置方法(三)

    目录 Python 数据类型常用的内置方法(三) 1.列表内置方法 1.sort():升序 2.reverse():颠倒顺序 3.列表比较运算 2.字典内置方法 1.对Key的操作 2.len( )- ...

  4. Python 数据类型常用的内置方法(二)

    目录 Python 数据类型常用的内置方法(二) 1.字符串类型常用内置方法 1.upper.lower.isupper.islower 2.startswith.endswith 3.format ...

  5. Python 数据类型常用的内置方法(一)

    目录 Python 数据类型常用的内置方法 1.整型 int 2.浮点型 float 字符串转浮点型: 3.字符串 str 多种类型转字符型: 索引 切片 len( )方法:统计字符串长度/个数 移除 ...

  6. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  7. python面向对象 : 反射和内置方法

    一. 反射 1. isinstance()和issubclass() isinstance( 对象名, 类名) : 判断对象所属关系,包括父类  (注:type(对象名) is 类名 : 判断对象所属 ...

  8. python基础之反射内置方法元类

    补充内置函数 isinstance(obj,Foo)   # 判断obj是不是foo的实例 issubclass()      # 判断一个类是不是另一个类的子类 反射 什么是反射? 通过字符串来操作 ...

  9. Python 类的常用内置方法

    类的内置方法(魔法方法): 凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,类的内置方法,会在满足某种条件下自动触发. 1.1__new__ __new__:在___init__触发前, ...

随机推荐

  1. Clion pycharm激活码(可使用到2019年2月)

    D87IQPUU3Q-eyJsaWNlbnNlSWQiOiJEODdJUVBVVTNRIiwibGljZW5zZWVOYW1lIjoiTnNzIEltIiwiYXNzaWduZWVOYW1lIjoiI ...

  2. leetcode 315. Count of Smaller Numbers After Self 两种思路

    说来惭愧,已经四个月没有切 leetcode 上的题目了. 虽然工作中很少(几乎)没有用到什么高级算法,数据结构,但是我一直坚信 "任何语言都会过时,只有数据结构和算法才能永恒". ...

  3. 24.HashSet

    在前篇博文(HashMap)中详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对HashMap比较熟悉,那么Has ...

  4. 消息中间件——kafka

    1.1.1 什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信.对 ...

  5. 8:String类

    String类 String类的特点: 字符串对象一旦被初始化就不会被改变. 字符串是最常用的类型之一,所以为了使用方便java就给封装成了对象方便使用  public static void str ...

  6. Java的面向对象(初涉)

    Java的面向对象(初涉) 面向对象的分析根据抽象关键的问题域来分解系统.面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成"现实世界&qu ...

  7. 【微服务】.netCore eShopOnContainers 部署实践《一》

    官方说明文档 -------------------------------------------------------------- # eShopOnContainers - Microser ...

  8. 算法手记(2)Dijkstra双栈算术表达式求值算法

    这两天看到的内容是关于栈和队列,在栈的模块发现了Dijkstra双栈算术表达式求值算法,可以用来实现计算器类型的app. 编程语言系统一般都内置了对算术表达式的处理,但是他们是如何在内部实现的呢?为了 ...

  9. odoo开发笔记 -- 搜索视图继承扩展

    odoo开发笔记 -- 搜索视图继承扩展

  10. 高手速成android开源项目【项目篇】

    主要介绍那些Android还不错的完整项目,目前包含的项目主要依据是项目有意思或项目分层规范比较好.Linux项目地址:https://github.com/torvalds/linuxAndroid ...