zoukankan      html  css  js  c++  java
  • Python——Dict

    Python字典(Dictionary)

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

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

     d = {key1 : value1, key2 : value2 }

    字典的特点:

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

    值可以取任何数据类型,但键必须是不可变的类型。

      不可变类型:数字、字符串、元组;

      可变类型:列表、字典。

    字典中键值是无序的。

    1、创建字典

    方法1:

    1 dic = {'ID':'123124','name':'oliver','age':18

    输出

    {'name': 'oliver', 'age': 18, 'ID': '123124'}

    方法2:

    1 dic = dict((('ID','234234'),))   #括号后的逗号表示第二对括号里边是一个序列

    输出:

    {'ID': '234234'}

    2、访问字典

    通过key去查找。

    例1:

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 print(dic['name'])

    输出:

    oliver

    例2:

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 print(list(dic.keys()))

    输出:

    ['age', 'ID', 'name']

    例3:

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 print(list(dic.values()))

    输出:

    18, '123124', 'oliver']

    例4:

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 print(list(dic.items()))

    输出:

    [('ID', '123124'), ('age', 18), ('name', 'oliver')]

    2、更新字典

    若不存在,将dic2中的键值加入dic;若存在,则更新值
    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 dic2 = {'1':'122','123':'123'}
    3 dic.update(dic2)
    4 print(dic)

    输出:

    {'age': 18, 'ID': '123124', '1': '122', 'name': 'oliver', '123': '123'}

    2、删除字典

    清空字典

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 print(dic.clear()) 

    输出:

    None

    删除键值对

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 del dic['name'] 
    3 print(dic)

    输出:

    {'age': 18, 'ID': '123124'}

    删除整个字典

    1 del dic5 
    2 print(dic5)

    输出:

    name 'dic5' is not defined

    删除键值对,并返回该key对应的值

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 print(dic.pop('age'))

    输出:

    18
    {'ID': '123124', 'name': 'oliver'}

    随机删除键值对,并以元组的形式返回删除的键值对

    1 a = dic.popitem() 
    2 print(a,dic)

    输出:

    ('ID', '123124') {'age': 18, 'name': 'oliver'}

    setdefault()

    如果字典中存在此key,则不做修改;如果不存在,则添加键值。该方法还可以返回添加的值。

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 ret = dic.setdefault('hobby','film')
    3 print(dic)
    4 print(ret)

    输出:

    {'name': 'oliver', 'ID': '123124', 'hobby': 'film', 'age': 18}
    film

    fromkeys()

     创建一个新字典。

    1 dic6=dict.fromkeys(['host1','host2','host3'],'test')
    2 print(dic6)

    输出:

    {'host2': 'test', 'host1': 'test', 'host3': 'test'}

    sorted()

    将字典中的键进行排序。

    1 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
    2 print(sorted(dic))

    输出:

    [111, 121, 211, 554]

    按照键对字典进行排序。

    1 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
    2 print(sorted(dic.items()))

    输出:

    [(111, 'aa'), (121, 'asdf'), (211, 'ds'), (554, 'bb')]

    has_keys()

    Python 2中使用has_keys()判断指定的key在字典中是否存在。存在则返回True。

    1 dic={5:'555',2:'666',4:'444'}
    2 dic.has_keys(5)

    Python 3中的判断方法:

    1 print(5 in dic)

    3、字典遍历

    1 dic = {'ID':'123124','name':'oliver','age':18}
    2 for i in dic:
    3     print(i,dic[i])

    输出:

    name oliver
    age 18
    ID 123124
  • 相关阅读:
    【Oracle】将表名与字段名连接成一行数据展示,字段名使用顿号的分隔
    【Accountancy】资产
    【FinacialKnowledge】财务报表及名词解释
    模块独立性原理
    C# this.Invoke()的作用与用法
    浅谈C#委托和事件(转载)
    C#三种定时器的实现
    一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    c++ comment
    C#使用StreamWriter类写入文件文件
  • 原文地址:https://www.cnblogs.com/pyramid1001/p/5800797.html
Copyright © 2011-2022 走看看