Python 字典

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

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

d = {key1 : value1, key2 : value2

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

dic = {'name':'jin','age':18,'sex':'male'}
print(dic)#{'name': 'jin', 'sex': 'male', 'age': 18}

##第一种:有则覆盖,无则添加
# dic = {'name':'jin','age':18,'sex':'male'}
# dic['hobby'] = 'girl'
# print(dic)

输出{'age': 18, 'hobby': 'girl', 'sex': 'male', 'name': 'jin'}

# dic['name'] = 'wusir'
# print(dic)
#{'age': 18, 'sex': 'male', 'name': 'wusir'}

第二种:serdefult 无则添加,有则不变

dic = {'name':'jin','age':18,'sex':'male'}
# dic.setdefault('hobby')
# print(dic)#{'sex': 'male', 'hobby': None, 'age': 18, 'name': 'jin'}
#'hobby'是键,而不是值,所以字典里会出现'hobby':None
# dic.setdefault('hobby','girl')
# print(dic)#{'name': 'jin', 'hobby': 'girl', 'age': 18, 'sex': 'male'}
#键值对 'hobby':girl添加到字典了、原字典没有hobby
# dic.setdefault('name','ritian')
# print(dic)#{'age': 18, 'name': 'jin', 'sex': 'male'}
#原字典中有k,name'所以不变

#pop  有返回值
# dic = {'name':'jin','age':18,'sex':'male'}
# print(dic.pop('age'))##返回所删除键值对的age值18
# print(dic)
# dic.pop('hobby')##报错
# print(dic.pop('hobby',None))##设定返回的键值,当hobby不存在时,返回None

##clear 清空
# dic = {'name':'jin','age':18,'sex':'male'}
# dic.clear()
# print(dic)#{}清空字典里面所有键值对

##del
# dic = {'name':'jin','age':18,'sex':'male'}
# del dic
# print(dic)#NameError: name 'dic' is not defined,通过del dic,已删除字典dic

# dic = {'name':'jin','age':18,'sex':'male'}
# del dic['name']
# print(dic)#{'age': 18, 'sex': 'male'},删除dic里面‘name’的键值对

# dic = {'name':'jin','age':18,'sex':'male'}
# print(dic.popitem())
# print(dic)#每次随机删除dic里面的键值对

# dic = {"name":"jin","age":18,"sex":"male"}
# dic['name'] = '太白'
# print(dic)#{'name': '太白', 'sex': 'male', 'age': 18}更改键name的值
# 两个字典的改
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic)#将dic键值对,覆盖并添加到dic2
# print(dic)#{'age': 18, 'name': 'jin', 'sex': 'male'}
# print(dic2)#{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': 75}

# dic = {"name":"jin","age":18,"sex":"male"}

# print(dic['name'])#jin 查键所对应的值jin
# print(dic['name1'])#KeyError: 'name1'如果查看没有的键,则会显示错误信息
# print(dic.get('name'))#jin
# print(dic.get('name1'))#没有此键时默认返回None
# print(dic.get('name1','无此键值对'))#无此键值对,后面可以设置···

其它方法

#key() values()  item()
dic = {"name":"jin","age":18,"sex":"male"}
# print(dic.keys(),type(dic.keys()))#查看dic的键keys
# print(dic.keys())#
# for i in dic.keys():
#     print(i)

列出dic的所有键

# for i in dic:
#     print(i)

# li = list(dic.keys())#以列表的形式查看dic键
# print(li)
# print(dic.values())#值

# for i in dic.values():#列出dic的键值
#     print(i)
#
#items 随机打出dic的键值对

# print(dic.items())#打出dic的键值对,顺序随机
#dict_items([('age', 18), ('sex', 'male'), ('name', 'jin')])

# for i in dic.items():#
#         print(i,type(i))
# ('name', 'jin') <class 'tuple'>
# ('sex', 'male') <class 'tuple'>
# ('age', 18) <class 'tuple'>

本文分享自微信公众号 - 编程坑太多(idig88),作者:看更多☞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot (四)spring data jpa

    IT故事会
  • java代码快

    IT故事会
  • python os模块详解

    IT故事会
  • python3--字典,字典的嵌套,概念:分别赋值

      字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储...

    py3study
  • python通过对字典的排序,对json字段进行排序的实例

    通过使用collecions,进行排序。collections是一个python的内建模块。

    砸漏
  • Leetcode【423、593】

    这道题是给一个字符串,其中包含字母顺序打乱的英文单词表示的数字 0 - 9。按升序输出原始的数字。

    echobingo
  • Python进阶01 词典

    基础教程介绍了基本概念,特别是对象和类。 进阶教程对基础教程的进一步拓展,说明Python的细节。希望在进阶教程之后,你对Python有一个更全面的认识。 之前...

    Vamei
  • 【Python3】基本数据类型-元祖(

    py3study
  • jquery - 页面弹框 - 阻止事件冒泡示例

    好了,下一步就是设置.pop_con隐藏,设置display:none,然后编写jquery,设置点击按钮#btn ,触发click()事件的时候,设置.pop...

    Devops海洋的渔夫
  • marshmallow之schema嵌套

    如果field嵌套对象是一个集合,必须设置many=True,如collaborators = fields.Nested(UserSchema, many=T...

    枇杷李子橙橘柚

扫码关注云+社区

领取腾讯云代金券