python之字典【dict】
#Auther Bob
#--*--conding:utf-8 --*--
#创建一个字典dict
dic1 = {'k1':'v1','k2':'v2'}
dic2 = dict(k1='v1',k2='v2')
print(type(dic1),type(dic2))
# <class 'dict'> <class 'dict'>
print(dic1)
print(dic2)
# {'k1': 'v1', 'k2': 'v2'}
# {'k1': 'v1', 'k2': 'v2'}
#clear,清空字典所有的元素
dic1.clear()
print(dic1)
# {}
#copy,这个copy也是浅拷贝
dict3 = dic2.copy()
print(dict3)
# {'k1': 'v1', 'k2': 'v2'}
# fromkeys,可以生成一个新的dict
new_dict = dict.fromkeys(['k1','k2','k3'],'v')
print(new_dict)
# {'k1': 'v', 'k2': 'v', 'k3': 'v'}
#get,获取dict中的元素,如果对应的key存在,则返回该key对应的value值,如果不存在
#则返回none
test_dict = {'name':'Bob','age':12,'job':'it'}
result = test_dict.get('name')
print(result)
# Bob
result = test_dict.get('home')
print(result)
# None
# items,返回dict中的key和value的值
result = test_dict.items()
print(result)
# dict_items([('name', 'Bob'), ('age', 12), ('job', 'it')])
# keys,返回dict的key
result = test_dict.keys()
print(result)
# dict_keys(['name', 'age', 'job'])
for k in test_dict.keys():
print(k)
# name
# age
# job
# values,返回dict的value的值
result = test_dict.values()
print(result)
# dict_values(['Bob', 12, 'it'])
for v in test_dict.values():
print(v)
# Bob
# 12
# it
# pop,删除某个dict的key,会把删除key的value返回,我们可以捕获到
result = test_dict.pop('job')
print(test_dict)
# {'age': 12, 'job': 'it'}
print(result)
# it
# popitem,会随机删除一个key
test_dict = {'name':'Bob','age':12,'job':'it'}
test_dict.popitem()
print(test_dict)
# {'name': 'Bob', 'age': 12}
#setdefault,给字典设置默认的key的value的值为none,如果key的value的值存在,则不会设置
#如果没有对应的key值,则会设置一个默认值none
test_dict.setdefault('name')
print(test_dict)
# {'name': 'Bob', 'age': 12}
test_dict.setdefault('home')
print(test_dict)
# {'name': 'Bob', 'age': 12, 'home': None}
setdefault的作用
有一个字典已经有多个元素,
test_dict.setdefault("k3","v3")
这个的意思 如果字典中有k3这个k值,且有值,则这段代码不会有任何作用,但是如果字典中没有k3这个k值,则会增加一个k为k3的值,且k3的values的值为v3
# update,更新字典
test_dict = {'name':'Bob','age':12,'job':'it'}
dic1 = {'k1':'v1','k2':'v2'}
test_dict.update(dic1)
print(test_dict)
# {'name': 'Bob', 'age': 12, 'job': 'it', 'k1': 'v1', 'k2': 'v2'}
dic1.update({'k3':'v3'})
print(dic1)
# {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
#来一个练习题,有如下集合,[11,22,33,44,55,66,77,88,99,111,100,45,],将小于100的和大于等于
#100的分别放到一个dict中{'k1':大于等于100,'ke':小于100}
list = [11,22,33,44,55,66,77,88,99,111,100,45,]
list1 = []
list2 = []
for i in list:
if i < 100:
list1.append(i)
else:
list2.append(i)
test_dict = {}
test_dict['k1'] = list1
test_dict['k2'] = list2
print(test_dict)
# {'k1': [11, 22, 33, 44, 55, 66, 77, 88, 99, 45], 'k2': [111, 100]}
#方法2
list = [11,22,33,44,55,66,77,88,99,111,100,45,]
test_dict = {}
for i in list:
if i >= 100:
if 'k1' in test_dict.keys():
test_dict['k1'].append(i)
else:
test_dict['k1'] = [i,]
else:
if 'k2' in test_dict.keys():
test_dict['k2'].append(i)
else:
test_dict['k2'] = [i,]
print(test_dict)
# {'k2': [11, 22, 33, 44, 55, 66, 77, 88, 99, 45], 'k1': [111, 100]}
python之字典【dict】的更多相关文章
- python基础——字典dict
1.概念: (1)字典dict,是一系列的键—值对.每个键key都和一个值value相映射.(字典是python中唯一的映射类型.) (2)每一项item,是一个键值对key—value对. (3)键 ...
- python基础——字典(dict)
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 . dict1 = {} ...
- python中字典dict的操作
字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字 ...
- Python中字典dict
dict字典 字典是一种组合数据,没有顺序的组合数据,数据以键值对形式出现 # 字典的创建 # 创建空字典1 d = {} print(d) # 创建空字典2 d = dict() print(d) ...
- python基础-字典dict
字典-dict 用途: 定义方法:通过{} 来存储数据,通过key:value (键值对)来存储数据,每个键值对通过逗号分隔.在键值对中,key 是不可变的数据类型,value 是任意数据类型 def ...
- python数据类型:字典dict常用操作
字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...
- Python的字典dict和set
Python内置了字典:dict的支持,dict全称dictionary: 表达式为dict{key,value} 使用键值对来存储数据 eg: 使用dict来存储姓名和分数 d = {'bob':2 ...
- Python基础:字典(dict)与集合(set)
查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...
- Python操作字典(dict)
一.字典定义 >>> dict={} 二.字典元素添加 >>> dict['性别']='男' >>> dict {'性别': '男'} >& ...
- python之字典(dict)
字典:一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 字典由键和对应值成对组成 {key:value,key1,value1}, 例如: dic = {'中国': '汉语 ...
随机推荐
- js如何判断小数点后有几位
<script> var n=3.143423423;alert(n.toString().split(".")[1].length); </script> ...
- KCP 传输协议
作者:韦易笑链接:https://www.zhihu.com/question/36258781/answer/98944369来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- javascript通过改变滚动条滚动来显示某些元素的scrollIntoView()方法
scrollIntoView(b)可以在任何HTML上调用,通过滚动滚动条,调用的元素就可以出现在可视区域. 参数如果是true,或者不传参数,则表示调用元素的顶部与浏览器顶部平齐. 如果传入fals ...
- 什么是最小可行性数据产品(MVP)?如何用它做机器学习?
- 关于tcp的三次握手与四次挥手,以及粘包
tcp三次握手: TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法 ...
- CUDA C Programming Guide 在线教程学习笔记 Part 13
▶ 纹理内存访问补充(见纹理内存博客 http://www.cnblogs.com/cuancuancuanhao/p/7809713.html) ▶ 计算能力 ● 不同计算能力的硬件对计算特性的支持 ...
- CUDA C Programming Guide 在线教程学习笔记 Part 1
1. 简介 2. 编程模型 ▶ SM version 指的是硬件构架和特性,CUDA version 指的是软件平台版本. 3. 编程接口.参考 http://chenrudan.github.io/ ...
- Spring Boot @Trasactionl 失效, JDK,CGLIB动态代理
来自: https://www.cnblogs.com/sweetchildomine/p/6978037.html?utm_source=itdadao&utm_medium=referra ...
- Css 特性之 transition和transform
CSS 有一些新的属性,可以简化代码的书写,用简单的代码就可以实现复杂的变化.不用像 js 那样,需要写很多代码 这里主要介绍三个属性:transition ,transform,以及translat ...
- 关于U3D场景烘焙的一个想法
U3D进行场景烘焙时,发现阴影无法选择烘焙质量,其实想一下也合理,毕竟是烘焙,是将光照与阴影信息保存到lightmap中,因此阴影的质量取决于光照贴图的精度, 就算光照贴图再大,也远不可能达到实时光照 ...