Python容器型数据类型 - 字典

字典是另一种可变容器模型,且可存储任意类型对象。
字典中的元素由键和值两部分构成,冒号前面的称为键,后面称为值,合在一起叫键值对

字典的创建

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

# 字面量语法
student = {
    'id': 1001,
    'name': '张三',
    'sex': True,
    'birthday': '1995-03'
}
# 构造器函数
student2 = dict(id=1002, name='王大催', sex=True, birthday='1992-11')
# 生成式(推导式)语法
dict1 = {i: i ** 2 for i in range(1, 10)}
print(dict1)      # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

# 生成器 (不是元组)
gen_obj = (i for i in range(1, 10))
print(next(gen_obj))      # 1
print(next(gen_obj))      # 2
print(next(gen_obj))      # 3
字典的使用
student = {
    'id': 1001,
    'name': '张三',
    'sex': True,
    'birthday': '1995-03'
}
# 字典的长度
print(len(student))       # 4
# 遍历字典中的键(下面两种写法效果一样)
# for key in student:
for key in student.keys():
    print(key, student[key])
# values的方法遍历字典中的值
for value in student.values():
    print(value)
# items的方法遍历字典中的键值对(二元组)
for x in student.items():
    print(x)      # ('id', 1001)
# 也可以把键和值分别取出
for key, value in student.items():
    print(key, value)      # id  1001
字典的运算
student = {
    'id': 1001,
    'name': '张三',
    'sex': True,
    'birthday': '1995-03'
}
# 字典的索引运算放在赋值运算符的左边
# 如果索引对应的键是存在的,就更新它的值
student['name'] = '王美丽'
student['sex'] = False
# 如果字典中没有对应的索引,就新增一组新的键值对
student['address'] = '四川成都'
print(student)     # {'id': 1001, 'name': '王美丽', 'sex': False, 'birthday': '1995-03', 'address': '四川成都'}

print('name' in student)     # True
print('age' in student)        # False
print('address' in student)       # True

print(student['name'])     # 王美丽
print(student['birthday'])     # 1995-03
# 如果要使用下标(索引)运算,那么必须要保证键一定存在,否则会报错
print(student['age'])
# 如果不确定,可以先用if判断
if 'age' in student:
    print(student['age'])
# 使用get函数通过key获取value时,如果key不存在,不会发生KeyError的错误
# 而是得到一个None(空值)或者是你指定的默认值
print(student.get('age'))     # None
print(student.get('age', 20))     # 20

# 删除键值对
del student['name']      # 没有返回值
student.pop('name')      # 会返回删除的值
字典的相关操作
dict1 = {'A':100, 'B': 200, 'C': 300}
dict2 = {'D': 400, 'E': 500, 'A': 600}
# 更新()元素的合并或更新
dict1.update(dict2)
print(dict1)      # {'A': 600, 'B': 200, 'C': 300, 'D': 400, 'E': 500}

# 删除 --->键必须存在,如果不存在会产生KeyError
del dict1['B']
dict1.pop('K')
# 默认删除最后一项
dict1.popitem()
# 清空所有
dict1.clear()

# 如果键在字典中,就返回字典中键对应的值,如果键不在字典中,就加入新的键值对(只新增不更新)
dict1.setdefault('C',200)
dict1.setdefault('name','1111')
联网获取JSON格式的数据并解析出需要的内容

操作系统:Windows, iOS, Android, macOS, Linux, Unix
编程语言:Python, Java, PHP, Go, C++

  1. 两个异构的系统之间交换数据最好的选择是交换纯文本(可以屏蔽系统和编程语言的差异)
  2. 纯文本应该是结构化或半结构化的纯文本(有一定的格式)
  • XML ---> eXtensible Markup Language ---> 可扩展标记语言
  • JSON ---> JavaScript Object Notation ---> 大多数网站和数据接口服务使用的数据格式
  • YAML ---> Yet Another Markup Language
  1. 如何将JSON格式转为Python程序中的字典?
  • ---> json --->loads
  • URL ---> Universal Resource Locator ---> 统一资源定位符
  • 三方库 ---> request ---> pip install requests

协议 ---> 通信双方需要遵守的会话的规则
HTTP / HTTPS --->通过URL访问网络资源的协议
请求(request) - 响应(response)

import json
import  requests

#  获取网络资源 ---> 两种书写方式
resp = requests.get('http://123?key=djdjdjd&num=2')
resp = requests.get(
    url='',
    params={'key':'','num':''}
)

# 两种方法都可以把json格式的数据转为Python中的字典
dict1 = json.load(resp.text)
dict2 = resp.json()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容