前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python字典详细操作

Python字典详细操作

作者头像
Yuou
发布2022-09-26 15:35:16
5050
发布2022-09-26 15:35:16
举报
文章被收录于专栏:乱七八糟技术日常

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

代码语言:javascript
复制
d = {key1 : value1, key2 : value2 }

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

如果用字典里没有的键访问数据,会输出错误如下:

代码语言:javascript
复制
dict['Age']:
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print "dict['Age']: ", dict['Age'] 
TypeError: 'type' object is unsubscriptable

字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

  1. 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'} 
print ("dict['Name']: ", dict['Name'])

字典内置的函数、方法

len()方法

len() 函数计算字典元素个数,即键的总数。

  • dict: 要计算元素个数的字典
代码语言:javascript
复制
len(dict)
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7};
print ("Length : %d" % len (dict))

str()方法

str()函数将值转化为适于人阅读的形式,以可打印的字符串表示。

  • dict – 字典 ,返回字符串
代码语言:javascript
复制
str(dict)
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7};
print ("Equivalent String : %s" % str (dict))

clear()方法

clear() 函数用于删除字典内所有元素

代码语言:javascript
复制
dict.clear()
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7};

print ("Start Len : %d" %  len(dict))
dict.clear()
print ("End Len : %d" %  len(dict))

copy()方法

copy() 函数返回一个字典的浅复制。

  • 返回一个字典的浅复制。
代码语言:javascript
复制
dict.copy()
代码语言:javascript
复制
dict1 = {'Name': 'Zara', 'Age': 7};
 
dict2 = dict1.copy()
print ("New Dictinary : %s" %  str(dict2))

直接赋值和 copy 的区别

代码语言:javascript
复制
dict1 =  {'user':'runoob','num':[1,2,3]}
 
dict2 = dict1          # 浅拷贝: 引用对象
dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用,原对象与深拷贝后得对象是两个独立的存在
 
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)
 
# 输出结果
print(dict1)
print(dict2)
print(dict3)

fromkeys()方法

fromkeys()函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

  • seq – 字典键值列表。
  • value – 可选参数, 设置键序列(seq)的值。
代码语言:javascript
复制
dict.fromkeys(seq[, value])
代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
seq = ('Google', 'Runoob', 'Taobao')
 
dict = dict.fromkeys(seq)
print("新字典为 : %s" %  str(dict))
 
dict = dict.fromkeys(seq, 10)
print("新字典为 : %s"%  str(dict))

get()方法

get() 函数返回指定键的值。

  • key – 字典中要查找的键。
  • default – 如果指定键的值不存在时,返回该默认值。
代码语言:javascript
复制
dict.get(key, default=None)
代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
seq = ('Google', 'Runoob', 'Taobao')
 
dict = {'Name': 'Runoob', 'Age': 27}

print ("Value : %s" %  dict.get('Age'))
print ("Value : %s" %  dict.get('Sex', "Not Available"))

注意嵌套字典中无法通过get()方法来获取字典的键

items()方法

items() 函数以列表返回可遍历的(键, 值) 元组数组。

代码语言:javascript
复制
dict.items()
代码语言:javascript
复制
dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}
 
print ("字典值 : %s" %  dict.items())
 
# 遍历字典列表
for key,values in  dict.items():
    print (key,values)  

keys()方法

keys() 函数以列表返回一个字典所有的键。

代码语言:javascript
复制
dict.keys()
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7}

print ("Value : %s" %  dict.keys())

setdefault()方法

setdefault() 函数和 get()类似, 如果键不存在于字典中,将会添加键并将值设为默认值。

  • key – 查找的键值。
  • default – 键不存在时,设置的默认键值。
代码语言:javascript
复制
dict.setdefault(key, default=None)
代码语言:javascript
复制
dict = {'runoob': '菜鸟教程', 'google': 'Google 搜索'}
 
print ("Value : %s" %  dict.setdefault('runoob', None))
print ("Value : %s" %  dict.setdefault('Taobao', '淘宝'))

update()方法

update() 函数把字典dict2的键/值对更新到dict里。

  • dict2 – 添加到指定字典dict里的字典。
代码语言:javascript
复制
dict.update(dict2)
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female' }

dict.update(dict2)
print ("Value : %s" %  dict)

values()方法

values() 函数以列表返回字典中的所有值。

代码语言:javascript
复制
dict.values()
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7}

print ("Value : %s" %  dict.values())
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 访问字典里的值
  • 字典键的特性
  • 字典内置的函数、方法
    • len()方法
      • str()方法
        • clear()方法
          • copy()方法
            • fromkeys()方法
              • get()方法
                • items()方法
                  • keys()方法
                    • setdefault()方法
                      • update()方法
                        • values()方法
                        相关产品与服务
                        容器服务
                        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档