python 入门之 – 数据字典(十八)

通过标题名称可以知道,字典是用来查询数据的,它是以 keyvalue 的形式存在的,在学习数据字典之前我来用几个例子说明一下,如:

info = [
    ['张三',21,'男','程序员'],
    ['李四',18,'女','设计师'],
    ['王五',26,'男','策划'],
    ['赵六',21,'男','实习生'],
]

这里是一组人员的信息,我现在要找到张三的信息,个人信息,并且我是不知道他在数组的第几个的,那么这个时候我肯定要用循环了,如:

for i in info :
    if i[0]=='张三' :
        print(i)

结果为:['张三', 21, '男', '程序员']

这样是没毛病的,但是 python 给我们提供了一种更加友好的数据类型,那就是标题里面的 字典,这样我其实一行代码就可以找到该数据,而不需要通过循环来操作三行代码了,我现在把数据结构类型改变一下如:

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
    "赵六":[21,'男','实习生'],
}

上方数据结构就是 python 中的字典,其实有过编程基础的朋友就知道了,他不就是一个 json 格式吗,确实是这样的,他就是 json 格式的,在 python 里面 json 格式就是数据字典,那么有了数据字典之后我在来查找一下关于张三的数据,其实就简单了,如:

print(info['张三'])

执行上方 print 之后在控制台打印出来的数据就是这样的了:[21, '男', '程序员'],这样一来是不是简介明了多了,我直接通过 info 这个对象集合的坐标名就拿到了对应的数据。

python 的数据字典里面有几个至关重要的特性,必须要掌握的,如:

1、字典必须是由 {} 括号包裹住的
2、key:value 结构
3、key 必须是可 hash、且必须为不可变数据类型、必须唯一
4、可存放任意多个值、可修改、可以不唯一
5、无须
6、查找速度快

python 中字典也是可以进行 增删改查 的,以下有几个在 python 中常用的字典方法:

增加:

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师']
}

info["王五"]=[26,'男','策划']

print(info)

输出结果为:{'张三':[21,'男','程序员'],'李四':[18,'女','设计师'],'王五':[26,'男', 策划']}

修改:

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划']
}

info["张三"] = [18,'男','程序员']
info["张三"][1] = '女'

print(info)

输出结果为:{'张三':[18,'女','程序员'],'李四':[18,'女','设计师'],'王五':[26,'男','策划']}

判断一个属性是否存在数据字典内:

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划']
}

"张三" in info

>> True

查找:

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划']
}

info.get("张三") #通过 get() 方式查找,如果找不到的话会返回一个 None

>> [21,'男','程序员']

info["李四"] #直接通过值查找,如果找不到的话会报错

>> [18,'女','设计师']

删除:
关于删除有好几种方法,先来看看第一种:pop()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
    "赵六":[21,'男','实习生'],
}
info.pop("赵六") #删除那个值,就把 key 值写进去
print(info)

>> {'张三': [21, '男', '程序员'], '李四': [18, '女', '设计师'], '王五': [26, '男', '策划']}

第二种:del

info = {
"张三":[21,'男','程序员'],
"李四":[18,'女','设计师'],
"王五":[26,'男','策划'],
"赵六":[21,'男','实习生'],
}
del info["赵六"] #删除那个值,就把 key 值写进去
print(info)

>> {'张三': [21, '男', '程序员'], '李四': [18, '女', '设计师'], '王五': [26, '男', '策划']}

以上两种就是删除的方法,关于删除其实还有一种随机删除数据,只有在非常多数据的情况下,才会随机删除,这种数据量的大小我目前还不太清楚是多少,数据比较少的情况下会删除最后一个,但是这种方法不常用,因为作为开发者来说,我们一般不回去随机删除,都是指定删除我们不需要的数据,我还是把这种随机删除的方法记录一下吧:popitem()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}
info.popitem()
print(info)

>> {'张三': [21, '男', '程序员'], '李四': [18, '女', '设计师']}

以上常用的增删改查就说完了,说白了,其实就是操作 json 数据,json 和数组一样都可以层层嵌套,如:

{
    "a":{
        "list":[
            {
                "a":"12312",
                "b":123,
                "c":[
                    {
                        "a":"b"
                    }
                ]
            }
        ]
    }
}

这就是常规的 json 格式了,如果还看不懂的朋友可以去了解一下什么是 json,因为这个是必学的知识点,今后在数据库里面存储的全部都是这种 json 格式,学 python 不可能不和数据库打交道的。

除去以上常规的增删改查方法,其实 python 还内置了几个其他的方法,如:

clear() : 清空整个字典
copy() : 复制整个字典,和数组(列表)当中一摸一样的用法,这里不细说,不知道的朋友可以去看我写的python 入门十二章节和十四章节
keys() : 获取整个字典中的 key 值
values() : 获取整个字典中的 value 值
items() : 将整个字典转成一个数组,并且数组里面的 key 和 value 都以一个个的小元祖排序
update() : 将两个元祖进行拼接
setdefault() : 往字典里面添加 key~value ,如果发现 key 存在将会返回 key 的 value,否则就将数据添加进去
fromkeys() : 构造一个初始化的字典(json),并且返回

clear()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}
info.clear()

print(info)

>> {}

keys()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}
info.keys()

>> dict_keys(['张三', '李四', '王五']) #将获取的 key 值变成了一个列表扎实

values()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}
info.values()

>> dict_values([[21, '男', '程序员'], [18, '女', '设计师'], [26, '男', '策划']])#将获取的 value 值变成了一个列表扎实

items()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}
info.items()

>> dict_items([('张三', [21, '男', '程序员']), ('李四', [18, '女', '设计师']), ('王五', [26, '男', '策划'])])

update()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}
info2 = {
    "赵六":[21,'男','程序员'],
    "李四":[30,'人妖','表演'],
}
info.update(info2)

print(info)

>> {'张三': [21, '男', '程序员'], '李四': [30, '人妖', '表演'], '王五': [26, '男', '策划'], '赵六': [21, '男', '程序员']}

setdefault()

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}

info.setdefault('王五','123') #王五存在,将王五的 value 返回出来

>> [26,'男','策划']

info.setdefault('赵六','123') #赵六不存在,没有返回值,所以添加成功

print(info)

>> {'张三': [21, '男', '程序员'], '李四': [18, '女', '设计师'], '王五': [26, '男', '策划'], '赵六': '123'}

fromkeys()

info = {}
info = info.fromkeys(['a','b','c'],'123') #第一个参数为数组,定义一个表的key值,第二个值为初始化的value值,可以是任何类型的数据,如果不写默认返回 None
print(info)

>> {'a': '123', 'b': '123', 'c': '123'}

以上就是 python 内置的所有字典的方法了,但是通过测试我发现其实字典和数组一样也是可以循环的,如:

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}

for i in info:
    print(i)

>> 张三
>> 李四
>> 王五

可以看到循环出来的只有 key 值,那么我想要打印他的 value 值,可以进行如下操作

info = {
    "张三":[21,'男','程序员'],
    "李四":[18,'女','设计师'],
    "王五":[26,'男','策划'],
}

for i in info:
    print(info[i])

>> [21,'男','程序员']
>> [18,'女','设计师']
>> [26,'男','策划']

可以看到这样就完美实现了循环数据字典,其实我只是用 JavaScript 的编程思路测试了一下,没想到还真的成功了。

好了,今天的把 python 的数据字典以及操作方法全部学完了,每天一点进步,让自己过的更加充实!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甘宇辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值