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 = {'中国': '汉语 ...
随机推荐
- 接口测试3-3Excel格式
java操作Excel,需要第三方库poi #xml <dependency> <groupId>org.apache.poi</groupId> <arti ...
- 为什么 JVM 不用 JIT 全程编译
从知乎扣出来的内容 https://www.zhihu.com/question/37389356 作者:RednaxelaFX链接:https://www.zhihu.com/question/37 ...
- IP地址与子网掩码
IP地址 众所周知,为了确保通信时能相互识别,在internet上的每台主机都必须有一个唯一的标识,即主机的IP地址.IP协议就是根据IP地址来实现信息传递的. IP地址由32位(4字节)二进制数组成 ...
- securecrt8注册码
securecrt8注册码,两个可用 Name:meisiCompany:TEAM ZWTSerial Number:03-14-367662License Key:ACCFAX R9FHJ7 QZV ...
- ossim 4.1 安装
在这说明一下,本人也是第一次安装这东东很多我自己也不懂,只能把自己的安装步骤通过贴图呈现出来了!!!! 我用root用户登录的,顺便查看ip 在浏览器打开网址https://192.168.86.15 ...
- 并发基础(七) Thread 类的sleep()、yeild()、join()
1.Thread.sleep(long millis ) sleep( )是一个静态方法,让当前正在执行的线程休眠(暂停执行),而且在睡眠的过程是不释放资源的,保持着锁. 在睡眠的过程,可以被中断,注 ...
- c++官方文档-动态内存
#include<iostream> #include <new> using namespace std; int main() { /** * 动态内存 * url: ht ...
- uva-165-枚举
题意:选取k种面额的邮票,总数是h,要求组合出来的连续数最大 枚举,网上看到一个更快的等价类划分,留着学等价类划分的思路 #include<stdio.h> #include<ios ...
- 温故而知新-MySQL高级编程
1 load data infile语句 MySQL下的命令 登录mysql命令行模式 load data infile "/var/www/1.txt" into table ...
- kubernet使用笔记
centos7.3下安装及部署:http://www.linuxidc.com/Linux/2017-02/140723.htm