一木.溪桥 在Logic Education跟Amy学Python

12期:Python基础课
一木.溪桥学Python-06:元组tuple、字典dict
日期:2020年12月25日


学习目标:

  • 元组tuple
  • 字典dict

学习内容:

元组tuple

tuple介绍

元组也是 序列结构,但是是一种 不可变序列,你可以简单的理解为内容不可变的
列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。

tuple创建

1.创建一个元组,只要把 逗号 分隔的 不同的数据元素 使用 小括号 括起来即可。

tu = (1,2,3,4)print(type(tu))print(tu)
  • run:
    <class ‘tuple’>
    (1, 2, 3, 4)

2.通过 tuple() 来进行创建元组

tu = tuple("1234",)     print(type(tu))print(tu)
  • run:
    <class ‘tuple’>
    (‘1’, ‘2’, ‘3’, ‘4’)

  • tips

  1. 参数为可迭代对象,整数123不能作为参数,会报错。
    2.tuple只有一个元素时,后面加“,”

tuple操作

  • 使用方括号加下标访问元素
tu = tuple("hello!",)print(tu[1])               # e
  • 切片(形成新元组对象)
tu = tuple("hello!",)print(tu[::-1])               # ('!', 'o', 'l', 'l', 'e', 'h')
  • tuple.count() / tuple.index()
tu = tuple("hello!",)print(tu.count("l"))               # 2print(tu.index("e"))               # 1
  • python内置函数:reversed() 反转, sorted()排序

reversed() 反转

tu = tuple("hello!",)print(list(reversed(tu)))               # ['!', 'o', 'l', 'l', 'e', 'h']

sorted()排序:升序

tu = tuple("147258369",)print(list(sorted(tu)))               # ['1', '2', '3', '4', '5', '6', '7', '8', '9']

sorted()排序:降序

tu = tuple("147258369",)print(list(sorted(tu, reverse=True)))               # ['9', '8', '7', '6', '5', '4', '3', '2', '1']
  • 加法
tu1 = tuple("123",)tu2 = tuple("345",)print(tu1 + tu2)               # ('1', '2', '3', '3', '4', '5')
  • 乘法
tu2 = tuple("345",)print(3 * tu2)               # ('3', '4', '5', '3', '4', '5', '3', '4', '5')

不允许的操作

  • 不允许 修改 、新增 元素。(一级)
  • 不允许 删除 某个元素(但可以删除整个元组)
  • 实际上,元组没有任何会对内部元素发生 修改 动作的方法。例如,元组没有
    remove , append , pop 等方法

tuple、list转换

tu = tuple("123",)print(list(tu))               # ['1', '2', '3']
li = ['1', '2', '3']print(tuple(li))              # ('1', '2', '3')

字典dict

dict介绍

字典介绍 ( 掌握 )
Python 的字典数据类型是基于 hash 散列算法实现的,采用 键值对 (key:value) 的形
式,根据 key 的值计算 value 的地址,具有非常快的查取和插入速度。它是一种 可变
对象 ,所以支持修改、插入、删除等操作。

dict创建

  • 格式1:{ key1 : value1, key2 : value2}
  • tips:
  1. Python3.6 开始,字典对象会保持键值插入时的顺序,并且其包含的 元
    素个数不限,值的类型 也可以是其它任何数据类型。
  2. 字典的 key 必须是 不可变的对象,例如整数、字符串、bytes 和元组,但使
    用最多的还是字符串。 列表、字典、集合等就不可以作为 key。同时,同一
    个字典内的 key 必须是唯一 的,但值则不必。
dic = {"name": "DXD", "age": 20}print(type(dic))        # <class 'dict'>print(dic)              # {'name': 'DXD', 'age': 20}
  • 格式2:dict() 键值对
dic = dict(name="DXD", age=20)print(dic)              # {'name': 'DXD', 'age': 20}
  • 格式3:映射
dic = dict([("name", "DXD"), ("age", 20)])print(dic)              # {'name': 'DXD', 'age': 20}

字典创建拓展

  • map(func, *iterables):
    将 iterables 里面的元素逐个传到 func 里面做处理
li = list("12345")print(list(map(int,li)))      # [1, 2, 3, 4, 5]print(li)                     # ['1', '2', '3', '4', '5']
  • zip(iter1 [,iter2 […]]):
    将iter1 iter2 中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

zip() --> dict

li1 = list("12345")li2 = list("abcde")print(dict(zip(li1,li2)))      # {'1': 'a', '2': 'b', '3': 'c', '4': 'd', '5': 'e'}

zip() --> list

li1 = list("12345")li2 = list("abcde")print(list(zip(li1,li2)))      # [('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'd'), ('5', 'e')]

dict访问

访问字典 ( 掌握 )
字典是 集合类型,不是序列类型,因此 没有索引下标 的概念,更 没有切片 的
说法。但是,与 list 类似,字典采用把 相应的键 放入 方括号 内获取 对应值 的
方式取值。
如:dic[exit_key]
思考:当 key 值不存在时,程序会怎么样呢?–> 报错

dict的增加与修改 ( 掌握 )

  • 增加 就是往字典 插入新的键值对
  • 修改 就是给 原有的键赋予新的值。由于一个 key 只能对应一个值,所以,多次对一个 key 赋值,后面- 的值会把前面的值 覆盖 掉。

dict删除 ( 掌握 )

  • 删除字典元素:del dic[exit_key] 或 dic.pop(exit_key)
  • 删除整个字典:del dic
  • 清空整个字典:dic.clear()
dic = dict(name="DXD", age=20)print(dic.clear())           # None

dict常见操作 ( 熟悉 )

  • D.get(k[,d]) --> 返回指定键的值,如果值不在字典中,则返回 default 值
  • D.items() --> 以列表返回可遍历的 ( 键 , 值 ) 元组对
  • D.keys() --> 以列表返回字典所有的键
  • D.values() --> 以列表返回字典所有的值
dic = dict(name="DXD", age=20)print(dic)              # {'name': 'DXD', 'age': 20}print(dic.get('name'))  # DXDprint(dic.items())      # dict_items([('name', 'DXD'), ('age', 20)])print(dic.keys())       # dict_keys(['name', 'age'])print(dic.values())     # dict_values(['DXD', 20])

作业:



作业答案:

题1:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time   : 2020/12/27 21:17
# @Author  : 一木.溪桥
# @File   : 作业.py
# @Software: PyCharmlis1 = ["name", "author", "introduce"]lis2 = ["NORWEGIAN WOOD", "Haruki Murakami", "balalalalal..."]print(dict(list(zip(lis1,lis2))))
  • run:
    {‘name’: ‘NORWEGIAN WOOD’, ‘author’: ‘Haruki Murakami’, ‘introduce’: ‘balalalalal…’}

题2:

Amy_info = {'name': 'amy', 'addr': 'hunan', 'weight': 90}print(Amy_info.keys())print(Amy_info.values())
  • run:
    dict_keys([‘name’, ‘addr’, ‘weight’])
    dict_values([‘amy’, ‘hunan’, 90])

题4:

bytes 转 str

bt = bytes("hello Amy!", encoding="utf")s = bt.decode()print(type(s))print(s)
  • run:
    <class ‘str’>
    hello Amy!

str 转 bytes

s = "hello Amy!"bt = s.encode()print(type(bt))print(bt)
  • run:
    <class ‘bytes’>
    b’hello Amy!’

一木.溪桥学Python-06:元组tuple、字典dict相关推荐

  1. python bar函数循环_一木.溪桥学Python-08: for循环、function函数

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-08: fo ...

  2. 一木.溪桥学Python-03: Python 运算符

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-03: Python 运算符 日期:2020年12月18日 学习目标: 算术. ...

  3. 一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,complex,None,str, 转义字符

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,compl ...

  4. 一木.溪桥学Python-10:函数闭包、装饰器、推导式

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-10:函数闭 ...

  5. 一木.溪桥学Python-11:迭代器、生成器、面象对象class MyClass:、self 参数、 __init__() 方法、__str__() 方法

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-11:迭代器 ...

  6. 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...

  7. 一木.溪桥学Python-14 异常捕获

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-14:异常捕 ...

  8. 一木.溪桥学爬虫-04:requests模块

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-04:requests模块.cookie.session 日期:2021年1月31日 学习 ...

  9. 一木.溪桥学Python-13:多继承、多态、常用魔法方法、单例模式

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-13:多继承 ...

最新文章

  1. PCL 点云特征描述与提取
  2. twisted Unhandled error in Deferred scrapy
  3. DRF的序列化——Serializers 序列化组件
  4. Full_of_Boys训练5总结
  5. python如何装sklearn_python安装sklearn
  6. jquery页面跳转带cookie_搭建谷歌浏览器无头模式抓取页面服务,laravelgt;phpgt;pythongt;docker...
  7. bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)
  8. GPS围栏两个多边形相交问题的奇葩解法
  9. 使用辅助任务来提升情感分类领域适应
  10. 电脑有独显内存还被占用_什么是电脑显卡,显卡是按什么来分类的
  11. 基于python的贪吃蛇游戏设计论文_《贪吃蛇游戏课程设计》报告毕业设计(论文)...
  12. 牛客补题 树 dsu on tree
  13. Android开发最新所有框架总结排行榜
  14. 虹科干货 | 零售业数智升级不掉队,get数据,get未来!
  15. BIGEMAP下载等高线(高程)使用教程
  16. 计算机语言 ada什么意思,ADA编程绝版资料
  17. arnold如何设置鱼眼相机_关于C4D阿诺德的摄像机参数详解
  18. Linux: Top命令查询结果参数详解
  19. 威世 | 新款 LLC 谐振变压器/电感器,优化 PCB 空间布局
  20. 【linux systemctl】Linux命令之systemctl命令

热门文章

  1. 山东各体系认证审核前准备资料清单汇总版
  2. 如何使用Java对pdf文档进行操作?
  3. css inset默认值,css中的inset/inset-inline/inset-block
  4. 新闻稿写作的具体要求是什么?
  5. 解决西电校园网若干问题
  6. 从AMSU-A回收飓风暖芯并重新映射ATMS测量并消除雨水污染
  7. BZOJ 3028食物
  8. client软件怎么卸载 nac_如何在Mac上安全彻底的卸载软件?
  9. 架构技能教程-时序图(UML图)的制作
  10. 超级详细的k8s入门教程