网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 案例分享 > Python 全栈之路系列之字典数据类型
admin 案例分享 2023-06-26 2:31:41

Python 全栈之路系列之字典数据类型

Python 全栈之路系列之字典数据类型,第1张

Python 全栈之路系列之字典数据类型,第2张

字典(dict)在基本的数据类型中使用频率也是相当高的,而且它的访问方式是通过键来获取到对应的值,当然存储的方式也是键值对了,属于可变类型。

创建字典的两种方式

第一种

>>> dic = {"k1":"123","k2":"456"}
>>> dic
{'k1': '123', 'k2': '456'}
>>> type(dic)
<class 'dict'>

第二种

>>> dic = dict({"k1":"123","k2":"456"})
>>> dic
{'k1': '123', 'k2': '456'}
>>> type(dic)
<class 'dict'>

在创建字典的时候,__init__初始化的时候还可以接受一个可迭代的变量作为值

>>> li = ["a","b","c"]
>>> dic = dict(enumerate(li))
>>> dic
{0: 'a', 1: 'b', 2: 'c'}

默认 dict 再添加元素的时候会把 li 列表中的元素 for 循环一边,添加的时候列表中的内容是字典的值,而键默认是没有的,可以通过 enumerate 方法给他加一个序列,也就是键。

与其变量不同的是,字典的键不仅仅支持字符串,而且还支持其他数据类型,譬如:

# 数字
>>> D = {1:3}
>>> D[1]
3
# 元组
>>> D = {(1,2,3):3}
>>> D[(1,2,3)]
3

字典解析

>>> D = {x: x*2 for x in range(10)}
>>> D
{0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18}
# 可以使用 zip
>>> D = {k:v for (k, v) in zip(['a','b','c'],[1,2,3])}
>>> D
{'a': 1, 'c': 3, 'b': 2}

字典所提供的常用方法

删除字典中的所有元素

clear(self):

>>> person = dict({"name": "ansheng", 'age': 18})
>>> person
{'age': 18, 'name': 'ansheng'}
>>> person.clear()
# 清空字典的内容之后字典会变成一个空字典
>>> person
{}

返回一个字典的浅复制

copy(self):

>>> person = dict({"name": "ansheng", 'age': 18})
>>> person.copy()
{'age': 18, 'name': 'ansheng'}

创建一个新字典,以序列 seq 中元素做字典的键, value 为字典所有键对应的初始值

fromkeys(S, v=None):

|属性|描述| |:--|:--| |S|字典键值列表| |v|可选参数, 设置键序列( seq )的值|

>>> seq = ('name', 'age', 'sex')
>>> dict = dict.fromkeys(seq)
>>> dict
{'age': None, 'name': None, 'sex': None}

fromkeys 方法就是把一个字典的 key 更新到另外一个字典中,默认的值可以设置

>>> dic={"k1":123,"k2":456,"k4":111}
>>> dic
{'k1': 123, 'k4': 111, 'k2': 456}
# 创建一个新的字典,默认值是`123`
>>> dic.fromkeys(["k1","k2","k3"],"123")
{'k1': '123', 'k3': '123', 'k2': '123'}

返回指定键的值,如果值不在字典中返回默认值

get(self, k, d=None):

|属性|描述| |:--|:--| |key|字典中要查找的键| |default|如果指定键的值不存在时,返回该默认值值|

>>> person = {"name": "ansheng", 'age': 18}
>>> person.get("name")
'ansheng'

成员运算符 in 可以判断键是否存在于字典中,如果键在字典 dict 里返回 true ,否则返回 false

>>> person = {"name": "mr", 'age': 18}
>>> 'name' in person
True
>>> 'aname' in person
False

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

items(self):

>>> person = {"name": "mr.wu", 'age': 18}
# 以元组的方式输出出来
>>> person.items()
[('age', 18), ('name', 'mr.wu')]

以迭代器的方式返回字典的键和值

iteritems(self):

>>> person.iteritems()
<dictionary-itemiterator object at 0x000000000297FEF8>

迭代 key

iterkeys(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.iterkeys()
<dictionary-keyiterator object at 0x000000000297FF98>

迭代 value

itervalues(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.itervalues()
<dictionary-valueiterator object at 0x000000000297FF48>

以列表的形式返回一个字典所有的键

keys(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.keys()
['age', 'name']

删除指定给定键所对应的值,返回这个值并从字典中把它移除

pop(self, k, d=None):

>>> person = {"name": "ansheng", 'age': 18}
>>> person
{'age': 18, 'name': 'ansheng'}
# 返回删除键对应的值
>>> person.pop("age")
18
>>> person
{'name': 'ansheng'}

随机返回并删除字典中的一对键和值,因为字典是无序的,没有所谓的"最后一项"或是其它顺序。

popitem(self):

>>> person = {"name": "ansheng", 'age': 18}
# 随即删除并显示所删除的键和值
>>> person.popitem()
('age', 18)
>>> person
{'name': 'ansheng'}

如果 key 不存在,则创建,如果存在,则返回已存在的值且不修改

setdefault(self, k, d=None):

|属性|描述| |:--|:--| |key|查找的键值| |default|键不存在时,设置的默认键值|

>>> person = {"name": "ansheng", 'age': 18}
# 如果字典中有这个键,那么就输出这个键的值
>>> person.setdefault("name")
'ansheng'
# 如果没有则不输出,但是会创建一个键,值为默认的'None',值是可以指定的
>>> person.setdefault("sex")
>>> person
{'age': 18, 'name': 'ansheng', 'sex': None}

把字典 dic2 的键 /值对更新到 dic1 里

update(self, E=None, **F):

>>> dic1 = {"name":"ansheng"}
>>> dic2 = {"age":"18"}
>>> dic1
{'name': 'ansheng'}
>>> dic2
{'age': '18'}
>>> dic1.update(dic2)
>>> dic1
{'age': '18', 'name': 'ansheng'}

显示字典中所有的值

values(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.values()
[18, 'ansheng']

所有项,只是将内容保存至 view 对象中

viewitems(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.viewitems()
dict_items([('age', 18), ('name', 'ansheng')])

viewkeys(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.viewkeys()
dict_keys(['age', 'name'])

viewvalues(self):

>>> person = {"name": "ansheng", 'age': 18}
>>> person.viewvalues()
dict_values([18, 'ansheng'])

对字典的键进行排序,其原理就是把 key 转换为列表,然后使用sort对列表排序,最后根据列表循环字典中的值

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'c': 3, 'b': 2}
>>> Ks = list(D.keys())
>>> Ks
['a', 'c', 'b']
>>> Ks.sort()
>>> Ks
['a', 'b', 'c']
>>> for k in Ks: print(k, D[k])
... 
a 1
b 2
c 3

原文链接

Python 全栈之路系列文章

----------------------- 以下是精选回复-----------------------

 

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Python 全栈之路系列之字典数据类型

admin 钻石

分享到:
上一篇
Windows服务器下搞企业邮箱该怎么弄,软件可以随便买,不在乎价格。
下一篇
一直没搞懂IE浏览器发送的HTTP请求里面的DNT=1是什么意思…………

相关推荐

MindGo 问财语句策略,让交易更简单!

MindGo 问财语句策略,让交易更简单!

Best HTML5 games

Best HTML5 games

用键盘弹一曲《Are You OK?》

用键盘弹一曲《Are You OK?》

推特的追随,转推,点赞就可以参与抽奖,这个是怎么统计抽奖的?

推特的追随,转推,点赞就可以参与抽奖,这个是怎么统计抽奖的?

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...