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 = {'中国': '汉语 ...
随机推荐
- [UE4]C++ 动态内存分配(6种情况,好几个例子)
1.堆内存分配 : C/C++定义了4个内存区间: 代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store). 堆的概念: 通常定义变量(或对 ...
- Microsoft Enterprise Library
http://entlib.codeplex.com/ 微软企业库 现在已经到到6版本了 2013年更新的. https://www.microsoft.com/en-us/download/conf ...
- Hive基础之Hive环境搭建
Hive默认元数据信息存储在Derby里,Derby内置的关系型数据库.单Session的(只支持单客户端连接,两个客户端连接过去会报错): Hive支持将元数据存储在关系型数据库中,比如:Mysql ...
- 【求助】win 2008 R2 远程桌面多用户,破解最大连接数2的限制
[求助]win 2008 R2 远程桌面多用户,破解最大连接数2的限制. 1. 本地组策略设置的是“允许的RD最大连接数 5”. 2. 远程桌面仍然只能有两个连接在线. 3. 后来发现是下面这个设置限 ...
- js的sort(0实现数组的排序
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 一,Android Studio笔记
转自:https://developer.android.com/studio/intro/index.html 一.界面 Android Studio 主窗口由图 3 标注的几个逻辑区域组成. 工具 ...
- hadoop命令帮助
安装完hadoop后,在hadoop的bin目录下有一系列命令: container-executor hadoop hadoop.cmd hdfs hdfs.cmd mapred mapred.cm ...
- TDictionary 是delphi用的,c++builder用起来太吃力。
TDictionary 是delphi用的,c++builder用起来太吃力.c++还是用std::map代替.c++d map很好用啊.https://blog.csdn.net/ddkxddkx/ ...
- 机器学习入门-线性判别分析(LDA)1.LabelEncoder(进行标签的数字映射) 2.LinearDiscriminantAnalysis (sklearn的LDA模块)
1.from sklearn.processing import LabelEncoder 进行标签的代码编译 首先需要通过model.fit 进行预编译,然后使用transform进行实际编译 2. ...
- 模板引擎-freemarker
Freemarker 是一款模板引擎,是一种基于模版生成静态文件的通用 工具,它是为java程序员提供的一个开发包. 可通过将Word或者Excel模板另存为xml格式,在其中修改要替换的内容. 基本 ...