Python语法学习记录之tuple该如何使用?
一、介绍
dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明:
下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。
每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。
不允许同一个键出现两次。创建时如果同一个键被赋值两次
二、字典初始化
1、普通赋值方法
print("===="*5,"dict init")
dic1 = {'a': 100, 'b':'boy', 'c':['o', 'p', 'q']}
print(type(dic1))
print("dic1:",dic1)
#可以直接增加一个元素,如果同名,则会改变原来的key的元素的值
dic1['d'] = 'dog'
dic1['c'] = 111 # 更新 'c'
print("dic1:",dic1)
#键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
dic2 = {'a': 1}
print ("dic2: ", dic2)
dic2 = {('a'): 1}
print ("dic2: ", dic2)
dic2 = {('a','b'): 1}
print ("dic2: ", dic2)
#dic2 = {['a']: 1} #error
2、元组初始化方法
print("===="*5,"touple init")
tuple1 = ('name', 'age', 'sex')
dict1 = dict.fromkeys(tuple1)
print ("新的字典为 : %s" % str(dict1))
dict1 = dict.fromkeys(tuple1, 10)
print ("新的字典为 : %s" % str(dict1))
dict1 = dict.fromkeys(tuple1, [1,2,3])
print ("新的字典为 : %s" % str(dict1))
三、字典的引用遍历合并
print("===="*5,"key and value")
dic1 = {'a':1,'b':2,'c':3}
#输出所有的key
print("keys:",dic1.keys())
print(type(dic1.keys()))
#输出所有的value
print("values:",dic1.values())
print(type(dic1.values()))
#同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
print(dic1.get('a',"don not find"))
print(dic1.get('z',"don not find"))
print(dic1.get('z'))
print('a' in dic1)
#遍历
for k in dic1:
print(dic1.get(k))
dic1 = {'a':1,'b':2,'c':3}
print ("a 键的值为 : %s" % dic1.setdefault('a', 'ff'))
print ("d 键的值为 : %s" % dic1.setdefault('d', 'ff'))
print ("新字典为:", dic1)
dic1 = {'a':1,'b':2,'c':3}
print (type(dic1.items()))
print ("Value : %s" % dic1.items())
for i,j in dic1.items():
print(i, ":\t", j)
#计算字典元素个数,即键的总数
dic1 = {'a':1,'b':2,'c':3}
print("len:",len(dic1))
#输出字典,以可打印的字符串表示。
dic1 = {'a':1,'b':2,'c':3}
print("str:",str(dic1))
#增加合并字典
dic1 = {'a':1,'b':2,'c':3}
dic2 = {'d':4,'e':5,'f':6}
dic1.update(dic2) #不可以使用加法
print("dic1:",dic1)
四、字典的浅复制
#返回一个字典的浅复制
print,ThinkMarkets返佣http://www.kaifx.cn/broker/thinkmarkets.html("===="*5,"copy")
dic1 = {'a':1,'b':[2,3,4],'c':3}
dic2 = dic1 # 浅拷贝: 引用对象
dic3 = dic1.copy() # 浅拷贝: 深拷贝: 父对象(一级目录),子对象(二级目录)不拷贝,还是引用
# 修改 data 数据
dic1['a']=100
dic1['b'].remove(2)
# 输出结果
print(dic1)
print(dic2)
print(dic3)#存在浅拷贝
五、字典删除
#删除
print("===="*5,"del")
dic1 = {'a':1,'b':2,'c':3}
dic2 = {'d':4,'e':5,'f':6}
dic3 = {'g':7,'h':8,'i':9}
dic2.clear() #清空字典 后为空字典 还属于有定义状态 删除字典内所有元素
print("dic2:",dic2)
print(type(dic2.keys()))
del dic3['g']
print("dic3:",dic3)#删除dic后属于没有定义状态会报错
del dic3
#print("dic3:",dic3)#删除dic后属于没有定义状态会报错
dic1 = {'a':1,'b':2,'c':3}
pop_obj=dic1.popitem()
print(pop_obj)
print(dic1)
dic1 = {'a':1,'b':2,'c':3}
pop_obj=dic1.pop('a')
print(pop_obj)
print(dic1)
dic1 = {'a':1,'b':2,'c':3}
pop_obj=dic1.pop('d','none')
print(pop_obj)
print(dic1)
六、python dict内存使用
def write_data_to_dict(key,data):
将数据放入字典
if not data:
return []
d_dict[md5(key)] = data
if md5(key) in d_dict.keys():
d_dict.update(d_dict)
return d_dict[md5(key)]
def get_data_from_dict(key):
从字典中取出数据
if not key:
return []
if md5(key) in d_dict.keys():
return d_dict.setdefault(md5(key), {})
Python语法学习记录之tuple该如何使用?的更多相关文章
- python语法学习面向对象之继承
python语法学习面向对象之继承 转载自:http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html 只要涉及到面向对象,”类“是必须出 ...
- 转 python语法学习面向对象之继承
传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始 ...
- python语法学习之函数、类、模块
Python中通过使用类(class)和对象(object)来实现面向对象(object-oriented programming,简称OOP)的编程. 面向对象编程的最主要目的是提高程序的重复使用性 ...
- Python爬虫学习记录【内附代码、详细步骤】
引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...
- 简明 Python 教程--学习记录
注意,我们在print语句的结尾使用了一个 逗号 来消除每个print语句自动打印的换行符.这样做有点难看,不过确实简单有效. print # prints a blank line 注意,没有返回值 ...
- python语法学习笔记
函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来 ...
- python反序列化学习记录
pickle与序列化和反序列化 官方文档 模块 pickle 实现了对一个 Python 对象结构的二进制序列化和反序列化. "pickling" 是将 Python 对象及其所拥 ...
- python爬虫学习记录
爬虫基础 urllib,urllib2,re都是python自带的模块 urllib,urllib2区别是urllib2可以接受一个Request类的实例来设置url请求的headers,即可以模拟浏 ...
- python numpy学习记录
numpy是一个python和矩阵相关的库,在机器学习中非常有用,记录下numpy的基本用法 numpy的数组类叫做ndarray也叫做数组,跟python标准库中的array.array不同,后者只 ...
随机推荐
- 前端,用js根据一个对象,去除另个对象中重复的元素
这里的应用场景是,两个div盛放待选项目和已选项目,如下图 <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6"> < ...
- Python操作MySQL实战案例讲解
使用Python的pymysql库连接MySQL数据库 #导入pymysql import pymysql #连接MySQL数据库 #输入数据库的IP地址,用户名,密码,端口 db=pymysql.c ...
- 第1篇Kubernetes介绍
一.Kubernetes 介绍: kubernetes起源 Kubernetes (K8s) 是 Google 在 2014 年发布的一个开源项目. 据说 Google 的数据中心里运行着 ...
- 2018CSS特效集锦牛逼
https://tympanus.net/codrops/2018/12/27/awesome-demos-from-2018/
- 服务注册与发现---spring cloud
Eureka基本架构 Register Service :服务注册中心,它是一个 Eureka Server ,提供服务注册和发现的功能. Provider Service :服务提供者,它是 Eur ...
- concurrent=false/true的定时任务job策略介绍
前言: 四种测试情况,cronExpression = 0/30 * * * * ? : 1,一个trigger,job设置的是每30s执行一次,实际需要75s:concurrent=false: 2 ...
- Excel处理
转载:https://www.cnblogs.com/cang12138/p/5606130.html 上面的博友已经讲的很清楚了,但是我们在服务端是获取不到前端上传文件的绝对路径的(因为新浏览器有安 ...
- 基于SpringBoot的花里胡哨配置
花里胡哨的配置 记录一下流行框架的一些常用配置 lomback配置文件 <?xml version="1.0" encoding="UTF-8"?> ...
- 8、iota枚举
1.iota常量自动生成器,每一行,自动累加1 2.iota给常量赋值使用 3.如果iota遇到const,就会重置为0 4.可以可以只写一个iota 5.如果是同一行,值是一样的 // 09_iot ...
- 阿里云智能推荐AIRec产品介绍
一.智能推荐(AIRec)简介 AIRec背景介绍 智能推荐(简称AIRec)基于阿里巴巴集团领先的大数据和人工智能技术,结合阿里巴巴在电商.内容.新闻.视频直播和社交等多个行业领域的积累,为全球企业 ...