IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 小螺丝的Python学习笔记day12——字典 -> 正文阅读

[Python知识库]小螺丝的Python学习笔记day12——字典

字典的定义及创建

字典以键值对(键和值的组合)的方式把数据组织到一起,我们可以通过键找到与之对应的值并进行操作 。

创建字典的三种方式:

# 字面量语法
student1={
    'id':1001,
    'name':'骆昊',
    'sex':'True',
    'birthday':'1980-11',
    'contacts':{
        'QQ':'4625900568',
        'tel':'135673542'
    }
}
print(student1)          # {'id': 1001, 'name': '骆昊', 'sex': 'True', 'birthday': '1980-11', 'contacts': {'QQ': '4625900568', 'tel': '135673542'}}
print(type(student1))    # <class 'dict'>
print(len(student1))     # 5
print(student1['name'])  # 骆昊
print(student1['contacts']['tel'])    # 135673542

# 构造器函数
student2=dict(id=1001,name='王大锤',sex=True,birthday='1980-11')
print(student2)  # {'id': 1001, 'name': '王大锤', 'sex': True, 'birthday': '1980-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}

遍历字典

# 遍历字典中的健
# for key in student1:
for key in student1.keys():
    print(key)     # id name sex birthday contacts

# 遍历字典中的值
for value in student1.values():
    print(value)   # 1001 骆昊 True 1980-11 {'QQ': '4625900568', 'tel': '135673542'}

# 遍历字典中的健值对---> (key, value)
for key,value in student1.items():
    print(key,value)   

字典的运算

需要特别提醒注意的是,字典中的键必须是不可变类型,例如整数(int)、浮点数(float)、字符串(str)、元组(tuple)等类型的值;显然,列表(list)和集合(set)是不能作为字典中的键的,当然字典类型本身也不能再作为字典中的键,因为字典也是可变类型,但是字典可以作为字典中的值。

student=dict(id=1001,name='王大锤',sex=True,birthday='1990-11')
# 成员运算
print('name' in student)   # True

# 字典的索引运算放在赋值运算的左边,如果索引对应的健是存在的,就更新它的值
student['name']='汪美丽'
print(student)   # {'id': 1001, 'name': '汪美丽', 'sex': True, 'birthday': '1990-11'}
# 如果字典中没有对应的索引,就增加一组新的"键值对"
student['address']='四川成都'
print(student)   # {'id': 1001, 'name': '汪美丽', 'sex': True, 'birthday': '1990-11', 'address': '四川成都'}
# 通过id修将student字典中对应的值修改为2110
if 'id' in student:
    student['id'] = 2110          
# 如果要使用下标(索引)运算,那么必须要保证健一定存在,否则将会引发KeyError异常。
if 'birthday' in student:
    print(student['birthday'])    # 1990-11
# 对字典的键进行循环并通索引运算获取键对应的值
for key in student:
    print(f'{key}: {student[key]}')

字典的相关操作

# 使用get函数通过key获取value时,如果key不存在,不会发生KeyError错误
# 而是得到一个None(空值)或者是你指定的默认值
print(student.get('age'))            # None
print(student.get('age',20))         # 20
print(student.get('name','无名氏')) #汪美丽(因有name且是'汪美丽',若无'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('b')   
# 删除最后一个键值对
dict1.popitem()
print(dict1)       # {'a': 600, 'c': 300, 'd': '400'}

# setdefault可以输出字典中的键对应的值或向字典中存入新的键值对
print(dict1.setdefault('c'))           # 300
print(dict1.setdefault('k', 10000))    # 10000
print(dict1)                # {'a': 600, 'c': 300, 'd': '400', 'k': 10000}

# 清空所有
dict1.clear()
print(dict1)                # {}

# 字典中健与值互换
dict1 = {'A': 1, 'B': 2, 'C': 3, 'D': 4}
dict2 = dict(zip(dict1.values(), dict1.keys()))
print(dict1)   # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
print(dict2)   # {1: 'A', 2: 'B', 3: 'C', 4: 'D'}

SON格式的数据------>字典

import json

data = """{
  "code": 200,
  "msg": "success",
  "newslist": [
    {
      "id": "98c93c967323b07b371a6326e0b2f1dd",
      "ctime": "2021-07-30 00:00",
      "title": "包揽金银!朱雪莹、刘灵玲分获女子蹦床冠亚军",
      "description": "",
      "source": "中华国内",
      "picUrl": "https://img1.utuku.imgcdc.com/300x200/news/20210730/288d5bcd-9bfd-4ddf-b642-603541d10dd7.png",
      "url": "https://news.china.com/domestic/945/20210730/39818998.html"
    },
    {
      "id": "a214ab1bd8cc7b91a12c699897e7f646",
      "ctime": "2021-07-30 00:00",
      "title": "创造历史!中国队女子八人单桨有舵手决赛摘铜",
      "description": "",
      "source": "中华国内",
      "picUrl": "https://img1.utuku.imgcdc.com/300x200/news/20210730/f9580655-cb78-4a95-9064-e0a2da780c40.jpg",
      "url": "https://news.china.com/domestic/945/20210730/39817521.html"
    }
  ]
}"""
# loads函数可以将JSON格式的数据转成Python中字典
news_dict = json.loads(data)
news_list = news_dict['newslist']
for news in news_list:
    print(news['title'])
    print(news['url'])

联网获取JSON格式的数据并解析出需要的内容,以天行数据的天气板块为例

import json
import requests

resp=requests.get(
    url='http://api.tianapi.com/txapi/tianqi/index',
    params={'key':'74d242b358750037789acc60bc5a3db1','city':'成都市'}
)
# print(resp.text)

weather_dict=resp.json()
weather_list=weather_dict['newslist']
print(weather_list)
for weathers in weather_list:
    print(weathers['area'])
    print(weathers['date'])
    print(weathers['weather'])
   

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:35:50  更:2021-07-31 16:36:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 10:00:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码