目录

  • 一、字典类型内置方法(dict)
    • 1.1 优先掌握(*****)
    • 1.2 需要掌握(****)
  • 二、练习


一、字典类型内置方法(dict)

1.用途:存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

2.定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

dic = {'a': 1, 'b': 2}  # dic = dict({'a':1,'b':2})print(f"dic: {dic}")
dic: {'a': 1, 'b': 2}
dic = dict(a=1, b=2, c=3)print(f"dic: {dic}")
dic: {'a': 1, 'b': 2, 'c': 3}
dic = {1: 'a', 0: 'b'}print(f"dic[0]: {dic[0]}")  # 无法区分dic是列表,还是字典,并且key不再具有描述信息
dic[0]: b
dic = {[1,2]: 'a', 0: 'b'}  # 报错

3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。

1.1 优先掌握(*****)

  1. 按key存取值:可存可取

  2. 长度len

  3. 成员运算in和not in

  4. 删除del

  5. 键keys()、值values()、键值对items()

  6. 循环

1.按key存取值:可存可取

# dic之按key存取值dic = {'a': 1, 'b': 2}print(f"first dic['a']: {dic['a']}")dic['a'] = 3print(f"second dic['a']: {dic['a']}")
first dic['a']: 1second dic['a']: 3

2.长度len

# dic之长度lendic = {'a': 1, 'b': 2}print(f"len(dic): {len(dic)}")
len(dic): 2

3.成员运算in和not in

# dic之成员运算in和not indic = {'a': 1, 'b': 2}print(f"'a' in dic: {'a' in dic}")print(f"1 in dic: {1 in dic}")
'a' in dic: True1 in dic: False

4.删除

# dic之删除deldic = {'a': 1, 'b': 2}del dic['a']print(f"dic.get('a'): {dic.get('a')}")
dic.get('a'): None
# dic之删除pop()dic = {'a': 1, 'b': 2}dic.pop('a')  # 指定元素删除print(f"dic.pop('b'): {dic.pop('b')}")print(f"dic.get('a'): {dic.get('a')}")
dic.pop('b'): 2dic.get('a'): None
# dic之删除popitem()dic = {'a': 1, 'b': 2}print(f"dic.popitem(): {dic.popitem()}")  # popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。
dic.popitem(): ('b', 2)

5.键keys()、值values()、键值对items()

# dic之键keys()、值values()、键值对items(),python2中取出的是列表(鸡蛋);python3中取出的是元组(鸡)dic = {'a': 1, 'b': 2}print(f"dic.keys(): {dic.keys()}")print(f"dic.values(): {dic.values()}")print(f"dic.items(): {dic.items()}")
dic.keys(): dict_keys(['a', 'b'])dic.values(): dict_values([1, 2])dic.items(): dict_items([('a', 1), ('b', 2)])

6.循环

# dic之循环# dic是无序的,但是python3采用了底层优化算法,所以看起来是有序的,但是python2中的字典是无序dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}for k, v in dic.items():  # items可以换成keys()、values()    print(k, v)
a 1b 2c 3d 4

1.2 需要掌握(****)

  1. get

  2. update

  3. fromkeys

  4. setdefault

1.get()

# dic之get()dic = {'a': 1, 'b': 2}print(f"dic.get('a'): {dic.get('a')}")print(f"dic.get('c'): {dic.get('c')}")
dic.get('a'): 1dic.get('c'): None

2.update()

# dic之update()dic1 = {'a': 1, 'b': 2}dic2 = {'c': 3}dic1.update(dic2)print(f"dic1: {dic1}")
dic1: {'a': 1, 'b': 2, 'c': 3}

3.fromkeys()

# dic之fromkeys()dic = dict.fromkeys(['name', 'age', 'sex'], None)print(f"dic: {dic}")
dic: {'name': None, 'age': None, 'sex': None}

4.setdefault()

# dic之setdefault(),有指定key不会改变值;无指定key则改变值dic = {'a': 1, 'b': 2}print(f"dic.setdefault('a'): {dic.setdefault('a',3)}")print(f"dic: {dic}")print(f"dic.setdefault('c'): {dic.setdefault('c',3)}")print(f"dic: {dic}")
dic.setdefault('a'): 1dic: {'a': 1, 'b': 2}dic.setdefault('c'): 3dic: {'a': 1, 'b': 2, 'c': 3}

二、练习

统计s='hello tank tank say hello sb sb'中每个单词的个数

结果如:{'hello': 2, 'tank': 2, 'say': 1, 'sb': 2}

s='hello tank tank say hello sb sb'l=s.split()dic={}for item in l:    if item in dic:        dic[item]+=1    else:        dic[item]=1print(dic)
{'hello': 2, 'tank': 2, 'say': 1, 'sb': 2}

4.存一个值or多个值:多个值,值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型

5.有序or无序:无序

dic = {'a': 1, 'b': 2}print(f'first:{id(dic)}')dic['a'] = 3print(f'second:{id(dic)}')
first:4356627632second:4356627632

6.可变or不可变:可变数据类型

©著作权归作者所有:来自51CTO博客作者wx5b1fd43180419的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 数字类型内置方法
  2. 列表类型内置方法
  3. Linux编程 18 安装软件程序(yum工具对软件包安装,删除,更新介绍)
  4. MySQL添加列、删除列,创建主键等常用操作总结
  5. 什么是CRUD( What is CRUD)
  6. Python中列表、元组、字典有何区别?Python学习!
  7. Java项目Centos7发布之发布过程
  8. 为什么在 iPhone 中删除的照片,iPad 上也没有了?
  9. 【MOS】OCR/Vote disk 维护操作: (添加/删除/替换/移动) (文档 I

随机推荐

  1. Android SDK Download List
  2. Android Context 详解
  3. Android(安卓)网络通信框架Volley简介
  4. Android(安卓)GridView显示一行,左右滑动
  5. Android(安卓)输入键盘弹出隐藏监听
  6. 解决小米手机不能运行Android(安卓)Studi
  7. Android自实现activity之间切换,view随手
  8. Android 控件及其属性2
  9. 日拱一卒(二十二)
  10. Android设置任何控件透明度