写在前面

本系列适合0基础的人食用,这是利用Excel学习Python系列的第5篇文章

之前的列表都复习好了吗:python数据结构:列表

are u ready?另一种数据结构:字典,要来了

字典(dict),是用大括号{}括起来的一种键值对的数据结构,字典通常这样表示:

字典名= {key1:value1,key2,value2}

key是键,value是值,一组键和值之间用冒号分割,不同的键值对之间用逗号分隔。键可以是任何数据类型,值也可以是任何数据类型包括数据结构,如列表。可以用type函数查看一个字典的数据类型,可以看到为dict

In [1]:# 新建字典
       t_dict ={\"tony\":101,\"tom\":102,\"judy\":103,\"baby\":104,\"cindy\":105}
       type(t_dict)
Out[1]:dict

1、建

同样地,我们从建、增、删、查、改几个角度来学习。首先新建一个字典,直接传入键值对结构,键为字符,值为数值:

In [2]:# 新建字典
       t_dict ={\"tony\":101,\"tom\":102,\"judy\":103,\"baby\":104,\"cindy\":105}
       t_dict
Out[2]:{\'tony\': 101, \'tom\': 102, \'judy\': 103, \'baby\': 104, \'cindy\': 105}

也可传入列表来创建字典

In [3]:# 列表传入创建字典
       l_dict = {\"name\":[\"tony\",\"tom\",\"judy\",\"cindy\"],\"num\":[101,102,103,104]}
       l_dict
Out[3]:{\'name\': [\'tony\'\'tom\'\'judy\'\'cindy\'], \'num\': [101, 102, 103, 104]}

2、增

字典中增加键值对,如在l_dict字典中新增age键值对。

In [4]:# 新增键值对
       l_dict[\"age\"] = [14,15,16,17]
       l_dict
Out[4]:{\'name\': [\'tony\'\'tom\'\'judy\'\'cindy\'],
        \'num\': [101, 102, 103, 104],
        \'age\': [14, 15, 16, 17]}

3、删

删除键值对,可用del函数根据键来删除

In [5]:# 删除键值对
       del l_dict[\"age\"]
       l_dict
Out[5]:{\'name\': [\'tony\'\'tom\'\'judy\'\'cindy\'],
        \'num\': [101102103104],

4、查

4.1 查找键是否在字典中

用in操作符,keys方法用来获取字典内的键,查找age是不是l_dict中的键

In [6]:# 查找值
       105 in l_dict.values()
Out[6]:False

4.2 查找值是否在字典中

Values方法用来获取字典中的值

In [7]:# 查找键
       \"age\" in l_dict.keys()
Out[7]:True

4.3 查找字典中指定值的位置

根据键查找对应的值,直接用键来访问:

In [8]:# 根据键查找值
       l_dict[\"name\"]
Out[8]:[\'tony\'\'tom\'\'judy\'\'cindy\']

值、键和项目

keys方法用来获取字典中的所有键,values方法用来获取所有值,items方法用来获取整个字典

In [9]:# 获取全部的键
       l_dict.keys()
Out[9]:dict_keys([\'name\'\'num\'])

In [10]:# 获取全部的值
       l_dict.values()
Out[10]:dict_values([[\'tony\'\'tom\'\'judy\'\'cindy\'], [101102103104]])

In [11]:# 获取整个字典
       l_dict.items()
Out[11]:dict_items([(\'name\', [\'tony\'\'tom\'\'judy\'\'cindy\']), (\'num\', [101102103104])])

5、改

同列表一样,查找后赋值。如将l_dict里num键中的104改为109.

In [12]:# 修改值
       l_dict[\"num\"] = [101,102,103,109]
       l_dict
Out[12]:{\'name\': [\'tony\'\'tom\'\'judy\'\'cindy\'],
        \'num\': [101, 102, 103, 109],
        \'age\': [14, 15, 16, 17]}

总结

  • 创建列表:花括号{键:值}

  • keys获取键

  • values获取值

  • items获取项目

写在后面

关于职场:
李笑来在《财富自由之路》中有一句话:从一开始就要训练自己的创造能力创新能力,而不是只在意自己完成任务的机械工作能力。

解读一下这句话,实际工作中我们可能80%的时间都在做那些机械的任务,但真正能带给我们提升的却是那20%的创造性工作,2/8法则就是这么的残酷,虽然感觉时间被剥夺这件事情无可避免,但还是建议你将80%的精力放在创造性工作上,注意,时间和精力有交集但绝不重合。

再延伸一下,在你什么都不懂的时候,还是先完成机械的工作任务,深入琢磨其中的逻辑吧,不要一上来什么都没做就先想着创新。

关于职场,你有什么想说的,欢迎评论区留言啊~

下一节内容:序列

相关内容:
列表是个什么鬼?
从Excel的数据类型说Python
利用Excel学习Python:变量
利用Excel学习Python:准备篇

猜你喜欢:
这样用Excel动态交互图表,还要什么前端?


@ 作者:可乐,进阶的数据分析师
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@ 加微信(data_cola)备注:进群,拉你进可乐的数据分析交流群,每日数据分析知识总结,不定期行业经验分享

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。