美文网首页
【08】字典

【08】字典

作者: Z_JoonGi | 来源:发表于2019-03-17 13:03 被阅读0次

1.什么是字典(dict)

  • 字典是python内置的一个容器型数据类型:可变(支持增删改)、无序(不支持下标操作)
  • {键1:值1, 键2:值2,键3:值3,...}
  • 键(key):a.不可变 b.唯一
  • 值(value):和列表元素要求一致
注意:键值是成对出现的;字典存数据,实质存的是值,键是值的索引。
dict1 = {'a': 100, 'b': 'abc', 'c': [1, 2], 'd': {'a': 100}}
print(dict1)

dict1 = {'a': 100, 'b': 'abc', 'a': [1, 2]}
print(dict1)   # {'a': [1, 2], 'b': 'abc'}

2.什么时候用字典

  • 如同时保存多个数据是具有相同意义的数据,用列表
  • 如果同时保存多个数据的意义不同,就使用字典

3.增删改查

3.1查

  • 1)获取key对应的值:
方法一:dict[key]
注意:key不存在的时候会报错
dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
print(dog1['type'])
# print(dog1['gender'])    # KeyError: 'gender'
方法二:dict.get(key)
注意:如果key值不存在,则返回None
  • dict.get(key, 默认值) (如果key不存在返回指定默认值)
print(dog1.get('color'))
print(dog1.get('gender'))
print(dog1.get('gender', '公狗'))
  • 2) 遍历
注意:直接遍历字典拿到是key
dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
for key in dog1:
    print(key, dog1[key])

3.2增/改 - 添加键值对

1) dict[key] = value
  • 当key不存在的时候就是添加键值对;当key存在的时候,就是修改key对应的值
film = {'name': '流浪地球', '主演': '吴京', 'time': '2019-2-5'}
film['票房'] = '40亿'
print(film)

film['time'] = '2019-2-6'
print(film)

film.setdefault('a', 10)
print(film)
2) dict.setdefault(key, value)
  • 只能添加键值对,不能修改
film.setdefault('name', '战狼2')
print(film)

3.3 删 - 删除键值对

1)del dict[key]
  • 删除字典中key对应的键值对,如果不存在则会报错
film = {'name': '流浪地球', '主演': '吴京', 'time': '2019-2-5'}
del film['time']
print(film)
2)dict.pop(key)
  • 从字典中取出key对应的值,结果是key对应的值
name = film.pop('name')
print(film, name)

4.相关运算符

1)只支持比较运算符
print({'a': 10, 'b': 20} == {'b': 20, 'a': 10})    # True
2)in / not in- key in dict (判断字典中是否存在某个key对应的键值对)
student = {'name': '小明', 'age': 20, 'tel': '16362738493'}
print('小明' in student)   # False
print('name' in student)    # True
3) len(), max(), min()
  • dict() - 本身是一个序列,序列中元素是小序列,小序列必须有且只有2个元素,而且这个2个元素中的第一个元素是不可变的
  • 注意:取最大值最小值是取key的最大值和最小值;字典转列表/元祖的时候,是将字典的key取出来作为列表/元祖的元素
print(len(student))
print(max(student))
print(dict(['cb', ['a', 100],  [1000, [1]] ]))
print(list(student))

#3
#tel
#{'c': 'b', 'a': 100, 1000: [1]}
#['name', 'age', 'tel']

5.相关方法

1)dict.clear() --清空字典
student.clear()
print(student)
2)字典.copy() - 复制字典的内容,产生一个新的字典
student = {'name': '小明', 'age': 20, 'tel': '16362738493'}
student1 = student.copy()
student1['name'] = '小花'
print(student)
3) dict.fromkeys(序列,值) - 创建一个新的字典,将序列中的元素作为新字典的key,指定的值作为每个key对应的值
new_dict = dict.fromkeys(['name', 'age', 'gender'], None)
print(new_dict)

person_keys = ['name', 'age', 'gender']
person1 = dict.fromkeys(person_keys, None)
person2 = dict.fromkeys(person_keys, None)
4) 字典1.update(字典2) - 将字典2中的键值对添加到字典1中
dict1 = {'a': 10, 'b': 20, 'z': 100}
dict1.update({'c': 30, 'b': 200})
print(dict1)  

相关文章

  • 【Ellen记单词-4】建立单词的心理联系

    2014-08-04Ellen 请忘记字典怎么说 --------------------------------...

  • 字典,集合

    Time: 2019-08-04 字典、集合 dict set 在Python 3.7后,字典被确定为有序的键值对...

  • 【08】字典

    1.什么是字典(dict) 字典是python内置的一个容器型数据类型:可变(支持增删改)、无序(不支持下标操作)...

  • 英语字典

    title: 英语字典date: 2018-08-09 14:47:40tags: [english,basic]...

  • 更新日志

    2017-08-08 版本号:2.0.11、增加系统的备份和还原功能;2、增加数据字典RestoreType和自动...

  • 08-字典

  • 08 Swift字典

    字典的介绍 字典允许按照某个键来访问元素 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)...

  • 08.Swift 字典

    @(〓〓 iOS-Swift语法)[Swift 语法] 作者: Liwx 邮箱: 1032282633@qq.c...

  • 08 元祖、字典、集合

    ====== 元祖 ====== 1.什么是元祖(tuple) Python提供的容器型数据类型,不可变并且有序(...

  • 编程入门09:Python字典类型

    上一篇:编程入门08:Python列表类型 现在让我们来学习另一种复合数据类型“字典”(Dictionary)——...

网友评论

      本文标题:【08】字典

      本文链接:https://www.haomeiwen.com/subject/xcaymqtx.html