#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】的更多相关文章

  1. python基础——字典dict

    1.概念: (1)字典dict,是一系列的键—值对.每个键key都和一个值value相映射.(字典是python中唯一的映射类型.) (2)每一项item,是一个键值对key—value对. (3)键 ...

  2. python基础——字典(dict)

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 . dict1 = {} ...

  3. python中字典dict的操作

    字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字 ...

  4. Python中字典dict

    dict字典 字典是一种组合数据,没有顺序的组合数据,数据以键值对形式出现 # 字典的创建 # 创建空字典1 d = {} print(d) # 创建空字典2 d = dict() print(d) ...

  5. python基础-字典dict

    字典-dict 用途: 定义方法:通过{} 来存储数据,通过key:value (键值对)来存储数据,每个键值对通过逗号分隔.在键值对中,key 是不可变的数据类型,value 是任意数据类型 def ...

  6. python数据类型:字典dict常用操作

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...

  7. Python的字典dict和set

    Python内置了字典:dict的支持,dict全称dictionary: 表达式为dict{key,value} 使用键值对来存储数据 eg: 使用dict来存储姓名和分数 d = {'bob':2 ...

  8. Python基础:字典(dict)与集合(set)

    查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...

  9. Python操作字典(dict)

    一.字典定义 >>> dict={} 二.字典元素添加 >>> dict['性别']='男' >>> dict {'性别': '男'} >& ...

  10. python之字典(dict)

    字典:一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 字典由键和对应值成对组成 {key:value,key1,value1}, 例如: dic = {'中国': '汉语 ...

随机推荐

  1. centos 7.5 安装mysql

    1.Mysql: 在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1.下载并安装MySQL官 ...

  2. seaborn可视化特征的相关性

    import seaborn as sn sn.heatmap(trainX.corr(),vmax=1,square=True)

  3. python 之路06day

    一   字符编码 1   字符编码的定义: 计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性.电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0 ...

  4. 进程之间的数据共享 -----Manager模块

    展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据. 这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中 ...

  5. 2k8 32bit下载

    Windows Server 2008 32-bit Standard(标准版) Windows Server 2008 32-bit Enterprise(企业版) Windows Server 2 ...

  6. JAVA Spring 事物 ( 已转账为例 ) 基于 AOP 注解

    <一> 配置为文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  7. redis详解(一)-- 概述

    首先,分布式缓存框架 可以 看成是nosql的一种 (1)什么是redis? redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) (2)Reids的 ...

  8. json小知识

    json转换新方法 上面是把一个json数组转换成map集合 fromObject()是通用的 map集合,bean对象,String转换成json 文件转换成字符串,在转换成json 生成json文 ...

  9. J2SE 8的输入输出--Path/Paths File/Files; FileSystems 类的用法

    Path的简单用法 //1. Path 正常用法 Path path = Paths.get("src/main/resource/zip"); logger.debug(path ...

  10. 机器学习入门-贝叶斯构造LDA主题模型,构造word2vec 1.gensim.corpora.Dictionary(构造映射字典) 2.dictionary.doc2vec(做映射) 3.gensim.model.ldamodel.LdaModel(构建主题模型)4lda.print_topics(打印主题).

    1.dictionary = gensim.corpora.Dictionary(clean_content)  对输入的列表做一个数字映射字典, 2. corpus = [dictionary,do ...